首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当在DataGridViewTextBoxCell中单击CheckBoxCell时,将CheckBoxCell移动到c#

当在DataGridViewTextBoxCell中单击CheckBoxCell时,将CheckBoxCell移动到c#
EN

Stack Overflow用户
提问于 2015-05-12 15:26:13
回答 1查看 106关注 0票数 2

我有一个有2列的DataGridView

Column1类型: DataGridViewCheckBoxColumn Column2类型: DataGridViewTextBoxColumn

当单击Column1中的单元格时,卡雷特/光标应该移动到Column2

下面是代码,但它不起作用。

代码语言:javascript
复制
    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;
            }
        }   
    }

任何帮助都将不胜感激。

问候

合子

EN

回答 1

Stack Overflow用户

发布于 2015-05-12 16:57:04

有两种解决办法:

  1. 修正两个错误:if-statement的计算结果为false,但是即使它通过了,下一行也会抛出一个错误。
  2. 简洁的方法。

1.修复

声明:

代码语言:javascript
复制
if (Convert.ToBoolean(_row.Cells[0].Value))

当第一次单击单元格时,当Falsenull时,计算结果为null。将此更改为:

代码语言:javascript
复制
if (_row.Cells[0] is DataGridViewCheckBoxCell)

当计算结果为True时,下面的行将抛出InvalidCastException

代码语言:javascript
复制
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)_row.Cells[1];

以下任一项:

  1. 将索引1更改为0。
  2. 试试_row.Cells[1] as DataGridViewCheckBoxCell。不过,chk将是null
  3. 把绳子移开。反正你也没在用它。

2.清理

替换您的整个方法:

代码语言:javascript
复制
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
  if (dataGridView1.CurrentCell is DataGridViewCheckBoxCell)
  {
    dataGridView1.CurrentCell = dataGridView1.CurrentRow.Cells[e.ColumnIndex + 1];
    dataGridView1.BeginEdit(true);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30195302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档