zoukankan      html  css  js  c++  java
  • DataGridView控件中添加DateTimePicker控件

    首先定义两个变量:

            DateTimePicker dtp = new DateTimePicker();  //实例化一个DateTimePicker控件
            Rectangle _Rectangle;

    然后添加如下代码:

            private void AddDateTimePicker(DataGridView dgv, int addColumnCount)
            {
                dgv.Controls.Add(dtp);  //将时间控件加入DataGridView
                dtp.Visible = false;  //先不显示
                dtp.Format = DateTimePickerFormat.Custom;  //设置日期格式,2017-11-11
                dtp.Checked = false;
                dgv.Columns[addColumnCount].ReadOnly = true;
    
                /*************时间控件选择时间时****************/
                dtp.TextChanged += (sender, e) =>
                {
                    dgv.CurrentCell.Value = dtp.Text.ToString();  //时间控件选择时间时,将时间内容赋给所在的单元格
                };
                /****************单元格被单击,判断是否是放时间控件的那一列*******************/
                dgv.CellClick += (sender, e) =>
                {
                    if (e.ColumnIndex == addColumnCount)
                    {
                        _Rectangle = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在单元格位置和大小
                        dtp.Size = new Size(_Rectangle.Width, _Rectangle.Height); //把单元格大小赋给时间控件
                        dtp.Location = new Point(_Rectangle.X, _Rectangle.Y); //把单元格位置赋给时间控件
                        dtp.Visible = true;  //显示控件
                    }
                    else
                        dtp.Visible = false;
                };
                /***********当列的宽度变化时,时间控件先隐藏起来,否则单元格宽高变化时时间控件无法跟着变***********/
                dgv.ColumnWidthChanged += (sender, e) =>
                {
                    dtp.Visible = false;
                };
                /***********滚动条滚动时,单元格位置发生变化,也隐藏时间控件,否则时间控件位置不动就乱了********/
                dgv.Scroll += (sender, e) =>
                {
                    dtp.Visible = false;
                };
            }
  • 相关阅读:
    C#操作REDIS例子
    A C# Framework for Interprocess Synchronization and Communication
    UTF8 GBK UTF8 GB2312 之间的区别和关系
    开源项目选型问题
    Mysql命令大全——入门经典
    RAM, SDRAM ,ROM, NAND FLASH, NOR FLASH 详解(引用)
    zabbix邮件报警通过脚本来发送邮件
    centos启动提示unexpected inconsistency RUN fsck MANUALLY
    rm 或者ls 报Argument list too long
    初遇Citymaker (六)
  • 原文地址:https://www.cnblogs.com/nanqinling/p/15584157.html
Copyright © 2011-2022 走看看