C# 在c中单击CheckBoxCell时,将插入符号移动到DataGridViewTextBoxCell#
我有一个DataGridView,有两列 Column1类型:DataGridViewCheckBoxColumnC# 在c中单击CheckBoxCell时,将插入符号移动到DataGridViewTextBoxCell#,c#,datagridview,C#,Datagridview,我有一个DataGridView,有两列 Column1类型:DataGridViewCheckBoxColumn Column2类型:DataGridViewTextBoxColumn 单击列1中的单元格时,插入符号/光标应移动到列2 下面是代码,但它不起作用 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView
Column2类型:DataGridViewTextBoxColumn 单击
列1
中的单元格时,插入符号/光标应移动到列2
下面是代码,但它不起作用
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow _row = dataGridView1.Rows[e.RowIndex];
if (Convert.ToBoolean(_row.Cells[0].Value))
{
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)_row.Cells[1];
_row.Cells[1].ReadOnly = false;
DataGridViewCell textBoxCell = _row.Cells[1];
if (textBoxCell != null)
{
dataGridView1.CurrentCell = textBoxCell;
dataGridView1.BeginEdit(true);
((TextBox)dataGridView1.EditingControl).SelectionStart = 0;
}
}
}
任何帮助都将不胜感激
问候合子两种解决方案:
if语句
的计算结果为false
,但即使它通过了,下一行也会抛出错误1。修复程序 声明:
if (Convert.ToBoolean(_row.Cells[0].Value))
当第一次单击单元格时,Value
为null
时,计算结果为False
。将此更改为:
if (_row.Cells[0] is DataGridViewCheckBoxCell)
当计算结果为True
时,以下行抛出InvalidCastException
:
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)_row.Cells[1];
要么:
chk
将为null
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.CurrentCell is DataGridViewCheckBoxCell)
{
dataGridView1.CurrentCell = dataGridView1.CurrentRow.Cells[e.ColumnIndex + 1];
dataGridView1.BeginEdit(true);
}
}
请参阅: