2012-01-05 213 views
1

这是我之前的一个跟进问题。你可以找到它here如何自动结束DataGridView单元格编辑模式?

我终于解决了之前的一个问题,当我将按钮添加到DataGrid的新行中时,整个单元格将处于编辑模式,直到我单击其他单元格并填充它, /或选项卡直到行的末尾(很明显,这个不起作用),那么它将结束编辑模式。 我使用dataGridView.BeginEdit(true);开始编辑模式,以便我可以解析文本框中的值(请参阅我的上一个问题)。因此,如果我插入另一个值并按下按钮,新值将替换先前插入的旧值,因为它目前仍处于编辑模式。 我试图使用,dataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);,cell.DataGridView.EndEdit()cell.DataGridView.EndEdit(DataGridViewDataErrorContexts.Commit);但显然不会结束编辑模式:( 我想要的是当我按下按钮时,文本框内的值将被插入到第一个文本框列(这个已经工作了),然后我不必点击或填充另一列来结束编辑模式,所以我只需要在文本框中输入任何内容,然后按下按钮直到我想停止。开始填充另一列 没有人知道如何解决这个 sample image 编辑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 img 2

+0

你也可以在你的winform上使用'this.Validate' – 2012-01-05 03:18:29

+0

我已经试过了Gabriel,但那也行不通。但是,无论如何感谢:D – 2012-01-05 03:41:24

+0

为什么你在开始时总是要求结束?您无需进入编辑模式即可设置您的值。编辑模式是让用户输入一个输入。 – 2012-01-05 04:18:47

回答

1

很抱歉的延迟。在看到如何设置绑定到DataGridView后,我可以明确地向您提供有关如何编辑网格绑定数据的更好指导。当您从Visual Studio中的数据源视图拖动表格并将其放到DataGridView上时,Visual Studio会为您做好几件事情。重要的是,您至少要了解所做的基础知识,以便了解如何操纵数据向前发展。 This MSDN文章如何设置从Visual Studio窗体控件的绑定。最后一节描述你在做什么。最后的句子“DataGridView控件现在绑定到已拖动到其上的表格,DataSet,TableAdapter和BindingSource出现在组件托盘中。”是重要的。由于Visual Studio生成将控件绑定到表的代码,因此应该直接编辑数据以更新数据网格视图。在这种情况下,你应该使用生成的DataSet(我假设它被命名为surat_jalanDataSet)。 Here是如何编辑数据集中的数据的说明。为您的具体情况Adding Rows。请让我知道这是否有助于您实现目标。

相关问题