DataGridView控件DateTime列插入DateTimePicker

    技术2025-12-26  5

      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();            }         }          ~ Form1()         {            ds.Dispose();             ds.Clear();            System.GC.Collect();        }     }
    最新回复(0)