C#只让某一行的某一列为日期选择下拉框
时间: 2023-09-17 10:13:02 浏览: 14
你可以使用DataGridView的EditingControlShowing事件来实现。在该事件中,你可以检查当前编辑单元格的列和行,如果它们符合你的条件,则将编辑控件设置为DateTimePicker。
以下是示例代码:
```csharp
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 2 && dataGridView1.CurrentCell.RowIndex == 0)
{
DateTimePicker dtp = e.Control as DateTimePicker;
if (dtp != null)
{
// 设置 DateTimePicker 格式
dtp.Format = DateTimePickerFormat.Short;
}
else
{
// 如果当前编辑控件不是 DateTimePicker,则创建一个新的 DateTimePicker
dtp = new DateTimePicker();
dtp.Format = DateTimePickerFormat.Short;
dataGridView1.Controls.Add(dtp);
}
// 设置编辑控件的位置和大小
dtp.Location = dataGridView1.GetCellDisplayRectangle(2, 0, true).Location;
dtp.Size = dataGridView1.GetCellDisplayRectangle(2, 0, true).Size;
// 显示 DateTimePicker
dtp.Visible = true;
}
else
{
// 如果当前编辑单元格不符合条件,隐藏任何显示的 DateTimePicker
if (e.Control is DateTimePicker)
{
e.Control.Visible = false;
}
}
}
```
在上面的示例代码中,我们检查当前编辑单元格的列和行,如果它们符合条件,则将编辑控件设置为DateTimePicker,并在适当的位置和大小显示它。如果当前编辑单元格不符合条件,则隐藏任何显示的DateTimePicker。请注意,上面的示例代码只适用于单元格(2,0)。你需要根据你的需求修改它。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)