c#设置DataGridView某一列的格式为日期

dgvTask.Columns["Column6"].DefaultCellStyle.Format = "yyyy-MM-dd";

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,你可以使用DataGridView控件来实现只让某一行的某一列日期选择下拉框的功能。具体步骤如下: 1. 在DataGridView中,设置要为日期选择下拉框的列的DefaultCellStyle属性。 ```csharp dataGridView1.Columns["ColumnName"].DefaultCellStyle.Format = "yyyy/MM/dd"; ``` 2. 在DataGridView的EditingControlShowing事件中,判断当前正在编辑的单元格是否是要设置日期选择下拉框的单元格,如果是,则将该单元格的编辑控件设置为DateTimePicker控件。 ```csharp private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) // 判断第1列是否需要日期选择下拉框 { DateTimePicker dtp = e.Control as DateTimePicker; if (dtp != null) { dtp.Format = DateTimePickerFormat.Custom; dtp.CustomFormat = "yyyy/MM/dd"; } else { dtp = new DateTimePicker(); dtp.Format = DateTimePickerFormat.Custom; dtp.CustomFormat = "yyyy/MM/dd"; dataGridView1.Controls.Add(dtp); } dtp.ValueChanged += new EventHandler(dtp_ValueChanged); dataGridView1.CellBeginEdit += new DataGridViewCellCancelEventHandler(dataGridView1_CellBeginEdit); dataGridView1.CellEndEdit += new DataGridViewCellEventHandler(dataGridView1_CellEndEdit); } } ``` 3. 在DateTimePicker控件的ValueChanged事件中,将当前编辑的单元格的值设置为DateTimePicker控件的值。 ```csharp private void dtp_ValueChanged(object sender, EventArgs e) { dataGridView1.CurrentCell.Value = (sender as DateTimePicker).Value.ToString("yyyy/MM/dd"); } ``` 4. 在DataGridViewCellBeginEdit事件中,设置当前编辑的单元格为DateTimePicker控件的值。 ```csharp private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { if (dataGridView1.CurrentCell.Value != null && dataGridView1.CurrentCell.Value.ToString() != "") { DateTimePicker dtp = dataGridView1.EditingControl as DateTimePicker; dtp.Value = DateTime.Parse(dataGridView1.CurrentCell.Value.ToString()); } } } ``` 5. 在DataGridViewCellEndEdit事件中,移除DateTimePicker控件。 ```csharp private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.CurrentCell.ColumnIndex == 1) { DateTimePicker dtp = dataGridView1.EditingControl as DateTimePicker; dataGridView1.CurrentCell.Value = dtp.Value.ToString("yyyy/MM/dd"); dataGridView1.Controls.Remove(dtp); } } ``` 以上就是实现只让某一行的某一列日期选择下拉框的完整代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值