1
我正在創建DataGridViewEx類,它繼承自DataGridView。
我想創建一個當前行中選擇第一個單元格的方法,所以我寫了這個:DataGridView:如何在MultiSelect爲true時選擇當前行中的第一個單元格
/// <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。爲什麼我不能添加圖像?取而代之的
cell.Selected = true;