如何自动结束DataGridView单元格编辑模式?

问题描述 投票:2回答:2

这是我上一个问题的跟进问题。您可以找到它here

我终于解决了上一个问题后遇到了另一个问题,当我分配按钮以将值添加到DataGrid中的新行时,整个单元格将处于编辑模式,直到单击其他单元格并将其填充和/或分页直到行尾(很显然这行不通),然后它将结束编辑模式。我正在使用dataGridView.BeginEdit(true);开始编辑模式,以便可以将值解析到文本框中(请参阅我的上一个问题)。因此,如果我插入另一个值并按下按钮,则新值将替换先前插入的旧值,因为它当前仍处于编辑模式。我试图使用dataGridView.EndEdit();dataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);cell.DataGridView.EndEdit()cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);,但显然并没有结束编辑模式:(我想要的是,当我按下按钮时,文本框内的值将被插入到第一文本框列中(此列已起作用)。然后,我不必单击或填充另一列即可结束编辑模式。因此,我只需要在文本框中输入任何内容,然后仅按下按钮,直到我想停止即可。之后,我开始填写另一列。有谁知道如何解决这个问题?“示例图像”编辑1:您看到区别了吗?查看红色圆圈,最上面的圆圈当前处于编辑模式(因为它在箭头后面带有*)。最下面的一个不在编辑模式(我是通过从组合框中选择一项来手动完成的。)>这是我上一个问题所要求的代码:

private void button1_Click(object sender, EventArgs e)
    {
        this.surat_jalanDataGridView.AllowUserToAddRows = true;
        string tokNum = this.textBox1.Text;

        if (this.textBox1.Text != "")
        {
            foreach (DataGridViewRow sjRow in this.surat_jalanDataGridView.Rows)
            {
                int RowIndex = surat_jalanDataGridView.RowCount - 1;
                DataGridViewRow R = surat_jalanDataGridView.Rows[RowIndex];

                DataTable table = new DataTable();
                DataRow newRow = table.NewRow();
                table.Rows.Add(newRow);

                DataGridViewCell cell = R.Cells[2];
                this.surat_jalanDataGridView.CurrentCell = cell;
                this.surat_jalanDataGridView.BeginEdit(true);

                R.Cells[2].Value = tokNum;
                cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
            }
        }
        this.surat_jalanDataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);
    }

编辑2:因此,我将surat_jalan从数据源拖放到Windows窗体中。然后它会自动变为属性名称为surat_jalanDataGridView的数据网格,数据源为surat_jalanBindingSource

“

这是我上一个问题的跟进问题。你可以在这里找到它。我终于解决了上一个问题后,又遇到了另一个问题,当我分配按钮以将值添加到...

c# winforms datagridview cell
2个回答
1
投票

很抱歉延迟。在了解了如何设置与DataGridView的绑定之后,我可以为您提供有关如何编辑与网格绑定的数据的更好指导。当您将表从Visual Studio的数据源视图中拖放到DataGridView上时,Visual Studio会为您做几件事。重要的是,您至少要了解已完成操作的基础知识,以便了解如何处理向前移动的数据。ThisMSDN文章如何设置从Visual Studio绑定到Windows窗体控件。最后一部分介绍您在做什么。最后一句话“ DataGridView控件现在绑定到您拖到它的表上。一个DataSet,TableAdapter和BindingSource出现在组件托盘中。”


0
投票

我要使Cell退出EditMode的方法是切换CurrentCell.ReadOnly属性。

© www.soinside.com 2019 - 2024. All rights reserved.