我正在创建继承自DataGridView的DataGridViewEx类 我想创建一个选择当前行中第一个单元格的方法,所以我写了这个:
/// <summary>
/// The method selects first visible cell in a current row.
/// If current row is null, nothing is done.
/// If any cells are selected, they are unselected before selecting first cell.
/// </summary>
public void SelectFirstCellInCurrentRow()
{
if (CurrentRow == null) return;
ClearSelection();
foreach (DataGridViewCell cell in CurrentRow.Cells)
{
if (cell.Visible)
{
cell.Selected = true;
return;
}
}
}
我想像这样使用它:
private void btnAdd_Click(object sender, EventArgs e)
{
bindingSource.Add(new Customer());
bindingSource.MoveLast();
grid.SelectFirstCellInCurrentRow();
grid.BeginEdit(false);
}
我的任务是向网格添加一个新行并开始编辑其第一个单元格 如果grid.MultiSelect = false,此代码工作正常,但如果grid.MultiSelect = true,则它不能按预期工作:取消选择所有单元格,选择最后一行的第一个单元格,但是!!!上次选择的列中最后一行中的单元格被编辑,而不是第一个单元格!
它的外观如下:
1)我选择了一些细胞:
_http://img13.imageshack.us/img13/2528/beforeadd.gif
2)按下添加按钮后:
_http://img211.imageshack.us/img211/847/afteradd.gif
提前谢谢。
PS。为什么我不能添加图像?
答案 0 :(得分:3)
而不是
cell.Selected = true;
试
CurrentCell = cell;