【发布时间】:2011-05-24 00:43:23
【问题描述】:
不要问为什么,但我需要一种方法来防止用户在选择了多行时在“新”datagridview 行中输入单元格。
当前,鼠标在单击和拖动过程中悬停在行的第一列中的单元格正在被选中。如果单击单元格,则不再选择行,因此您不能使用任何单元格单击事件或任何东西。
欢迎提出任何建议。
附:不要尝试从 selectionchanged 事件中编辑当前单元格,已经尝试过了!
谢谢,
艾萨克
【问题讨论】:
标签: c# datagridview
不要问为什么,但我需要一种方法来防止用户在选择了多行时在“新”datagridview 行中输入单元格。
当前,鼠标在单击和拖动过程中悬停在行的第一列中的单元格正在被选中。如果单击单元格,则不再选择行,因此您不能使用任何单元格单击事件或任何东西。
欢迎提出任何建议。
附:不要尝试从 selectionchanged 事件中编辑当前单元格,已经尝试过了!
谢谢,
艾萨克
【问题讨论】:
标签: c# datagridview
我知道 DataGridView 控件有一个 RowState 属性。当您的行被选中时,检查状态。我不确定状态是什么(如果我什至在球场上)......无论如何,你也许可以检查那条路线。
我正在寻找更多信息......
好的……我想我找到了一个不错的方法:
void DataGridView1_RowsAdded (object sender, DataGridViewRowsAddedEventArgs e)
{
currentNewRow = e.RowIndex;
}
void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex == currentNewRow)
{
// don't add to Selection
}
}
【讨论】:
使用 CellStateChanged 事件:
private void dataGridView_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) {
if (e.Cell.OwningRow.IsNewRow && dataGridView.SelectedRows.Count > 1)
e.Cell.Selected = false;
}
【讨论】: