【问题标题】:DataGridView CellSelect and FullRowSelectDataGridView CellSelect 和 FullRowSelect
【发布时间】:2011-12-19 20:32:45
【问题描述】:

所以我有几个我们设置为FullRowSelect 的数据网格视图。用户现在要求能够在单个单元格上选择复制功能。

我将DataGridView 设置为CellSelect,但是当我运行应用程序时,当我单击行标题时,它不会突出显示整行,而只会突出显示第一列。

我尝试使用RowHeaderMouseClickCellMouseClick 来切换选择模式,但为了让RowHeaderMouseClick 完全选择它,我必须多次单击行标题。

private void DataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}

如何根据他们在网格上选择的内容在CellSelectFullRowSelect 之间轻松或不那么轻松地来回切换?

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    如果我理解您的意思,您希望能够选择单个单元格但也可以轻松选择整行?

    如果是这种情况,请将 SelectionMode 设置为 RowHeaderSelect

    【讨论】:

      【解决方案2】:
      DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
      

      1- 您实际上使用的是 DataGridView 结构,而不是您的对象 DataGridView。

      2- 不应在用户每次单击行时修改 SelectionMode,而应在程序的构造函数中修改。

      例子

      public MyForm()
      {
          dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
      }
      

      【讨论】:

      • 我正在使用对象,在示例中它只是称为DataGridView。为了清楚起见,我将更改名称。至于选择模式,它将根据用户的需要而改变。他们可能会单击一个单元格,因此它应该是 CellSelect。如果他们单击 RowHeader,它将是 FullRowSelect。
      【解决方案3】:

      添加这一行代码。

      this.dataGridView1.SelectionMode = isTrue == true ? DataGridViewSelectionMode.FullRowSelect : DataGridViewSelectionMode.RowHeaderSelect;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        • 2023-02-17
        • 1970-01-01
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多