• [转]dataGridView控件DateTime列插入DateTimePicker


    来自:http://www.cnblogs.com/ojekleen/articles/dataGridView.html

    public Form1()
            
    {
                InitializeComponent();
            }


            
    //定义一个DateTimePicker控件
            private DateTimePicker dTimePicker = new DateTimePicker();

            
    //定义一个DataSet
            private DataSet ds;
           
            
    private void Form1_Load(object sender, EventArgs e)
            

                
    //隐藏dTimePicker
                dTimePicker.Visible = false;
                
                
    //dataGirdView1控件数据绑定
                Data_Bind();


                
    //定义控件dTimePicker当Text变更时委托于事件dTimePicker_TextChanged
                dTimePicker.TextChanged += new EventHandler(dTimePicker_TextChanged);

                
    //dataGridView1添加控件dTimePicker
                dataGridView1.Controls.Add(dTimePicker);
            }


            
    /**//// <summary>
            
    /// dataGirdView绑定数据
            
    /// </summary>

            private void Data_Bind()
            
    {
                
    string sqlstr = "select businessname,lastlogindate from business";
                ds 
    = SqlHelper.ExecuteDS(CommandType.Text, sqlstr);
                dataGridView1.DataSource 
    = ds.Tables[0].DefaultView;
            }



            
    //事件dTimePicker_TextChanged,当dTimePicker当Text变更时触发
            private void dTimePicker_TextChanged(object sender, EventArgs e)
            
    {
                
    //把dTimePicker的Text值赋给dataGridView1选中的单元格值
                dataGridView1.CurrentCell.Value = dTimePicker.Text;
            }

            
            
    private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
            
    {
                
    //当dataGridView1滚动条移动时dTimePicker控件隐藏
                dTimePicker.Visible = false;
            }


            
    private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
            
    {
                
    //当dataGridView1的列宽改变时dTimePicker控件隐藏
                dTimePicker.Visible = false;

            }


            
    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            
    {
                
    //判断选中行时日期类型
                
    //dt = ds.Tables[0];
                Type t = ds.Tables[0].Columns[dataGridView1.CurrentCell.ColumnIndex].DataType;
                DateTime d 
    = DateTime.Now;
                
    if (t== d.GetType() )
                
    {
                    
    //获得dataGridView1选中单元格显示区域的矩形
                    Rectangle Rect = this.dataGridView1.GetCellDisplayRectangle(this.dataGridView1.CurrentCell.ColumnIndex, this.dataGridView1.CurrentCell.RowIndex, false);
                    
    //显示dTimePicker在dataGridView1选中单元格显示区域的矩形里面,即选中单元格内
                    dTimePicker.Visible = true;
                    dTimePicker.Top 
    = Rect.Top;
                    dTimePicker.Left 
    = Rect.Left;
                    dTimePicker.Height 
    = Rect.Height;
                    dTimePicker.Width 
    = Rect.Width;
                    
    //dTimePicker控件获取初始值为dataGridView1选中单元格值
                    dTimePicker.Text=dataGridView1.CurrentCell.Value.ToString();

                }

            }

  • 相关阅读:
    Discuz!NT 系统架构分析
    jquery pager
    Nhibernate分页方法
    Discuz nt模板机制
    WTclient创建OPC client方法
    OPC
    Regular Expressions in Java
    How to use VS to manipulate Access
    OPC客户端设计
    How to use VS to manipulate Excel使用MFC读写Excel
  • 原文地址:https://www.cnblogs.com/2008freestyle/p/2441163.html
Copyright © 2020-2023  润新知