【问题标题】:DataGridView Cell EditingDataGridView 单元格编辑
【发布时间】:2011-02-22 14:48:15
【问题描述】:


我有一个绑定到 XML 源的 DataGridView。

  1. 我在编辑单元格时遇到问题。单击时的单元格被选中,当它被编辑时,默认情况下我们会覆盖它。我的要求是它应该准备好进行编辑,并且在点击时没有被选中。
  2. 我想在按下“tab”键时动态生成一行。

我怎样才能做到这一点?

【问题讨论】:

    标签: c# .net winforms datagridview


    【解决方案1】:

    如果我理解正确,您希望单元格在单击后立即进入编辑模式。这可以通过将DataGridView 的EditMode 属性设置为EditOnEnter 来实现。 但是,这会使编辑控件中的文本保持选中状态,因此如果您不希望这样做,可以使用:

    dataGridView1_CurrentCellChanged(object sender, EventArgs e)
    {
            dataGridView1.BeginEdit(false);
    }
    

    你能解释一下动态添加行是什么意思吗?

    【讨论】:

      【解决方案2】:

      关于问题1)

      你可以试试这个:

      private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
              {
                  this.dataGridView1.CellEnter += new DataGridViewCellEventHandler(myDataGrid_CellEnter);
              }
              void myDataGrid_CellEnter(object sender, DataGridViewCellEventArgs e)
              {
                  if ((this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewTextBoxColumn) ||
                      (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn))
                  {
                      this.dataGridView1.BeginEdit(false);
                  }
              }
      

      【讨论】:

      • 这导致每次用户点击内容时都会为CellEnter 添加一个新的事件处理程序!为什么不按照“JonC”的建议直接致电dataGridView1.BeginEdit(false)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 2011-10-25
      • 2011-12-24
      • 1970-01-01
      相关资源
      最近更新 更多