DataGridView 时间控件应用

本文详细介绍了如何在Windows应用程序中使用DateTimePicker控件与DataGridView进行交互,包括时间选择、事件响应以及数据更新过程。


第一步

  DateTimePickerm_zldtp = new DateTimePicker();

  Rectanglem_zlRectangle;

  publicUCWLZL()

        {

            InitializeComponent();

 

            this.dgvZLData.Controls.Add(m_zldtp);//把时间控件加入DataGridView

            m_zldtp.Visible = false; //先不让它显示

            m_zldtp.Format = DateTimePickerFormat.Custom;

            m_zldtp.CustomFormat = "yyyy-MM-dd";

            m_zldtp.TextChanged += new EventHandler(m_zldtp_TextChange);//为时间控件加入事件dtp_TextChange

        }

第二步

    private void m_zldtp_TextChange(objectsender, EventArgs e)

        {

            this.dgvZLData.CurrentCell.Value= m_zldtp.Text;

        }

第三步


        privatevoid dgvZLData_CellClick(object sender, DataGridViewCellEventArgse)

        {

            try

            {

                if(e.ColumnIndex == 0)     //如果DataGridView中第一列

                {

                    m_zlRectangle =dgvZLData.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true); //得到所在单元格位置和大小

                    m_zldtp.Size = new Size(m_zlRectangle.Width,m_zlRectangle.Height); //把单元格大小赋给时间控件

                    m_zldtp.Location = new Point(m_zlRectangle.X,m_zlRectangle.Y); //把单元格位置赋给时间控件

                    m_zldtp.Visible = true; //可以显示控件了

 

                    if(this.dgvZLData.CurrentCell.Value != null && this.dgvZLData.CurrentCell.Value.Equals(DBNull.Value) == false)

                    {

                        m_zldtp.Value = Convert.ToDateTime(this.dgvZLData.CurrentCell.Value);

                    }

                    else

                    {

                        m_zldtp.Value = DateTime.Now;

                    }

                }

                else

                {

                    m_zldtp.Visible = false;

                }

            }

            catch(Exception ex)

            {

                Class_Log4Net.WriteError("UCWLZL+dgvZLData_CellClick()" +ex.Message + ex.Source);

            }

        }

第四部


        privatevoid dgvZLData_CellLeave(object sender, DataGridViewCellEventArgse)

        {

            if(e.ColumnIndex == 0)

            {

                if(this.dgvData.CurrentCell.Value == null || this.dgvData.CurrentCell.Value.Equals(DBNull.Value) == true)

                {

                    this.dgvData.CurrentCell.Value= m_dtp.Text;

                }

            }

        }

第五步


        privatevoid dgvZLData_ColumnWidthChanged(object sender, DataGridViewColumnEventArgse)

        {

            m_zldtp.Visible = false;

        }

 

        privatevoid dgvZLData_Scroll(objectsender, ScrollEventArgs e)

        {

            m_zldtp.Visible = false;

        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkcharge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值