CurrentRow.Headercell.Selected的DataGridView在C#中总是为false?

时间:2015-09-01 11:50:52

标签: c# winforms datagridview

在Visual Studio 2010中。

  1. 创建Visual C#“窗体表单应用程序”项目

  2. 在表单上放置一个DataGridView组件并添加一些列。

  3. 创建鼠标点击事件:

    private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
        if (dataGridView1.CurrentRow.HeaderCell.Selected)
        {
            MessageBox.Show("Header Selected");
        }
    
        if (dataGridView1.CurrentRow.HeaderCell.State != DataGridViewElementStates.None)
        {
            MessageBox.Show("Not None");   
        }                
    }
    
  4. 在运行时单击行标题选择一行,但从不显示任何MessageBox。

  5. 为什么?

2 个答案:

答案 0 :(得分:1)

要检查是否单击了行标题单元格,这些选项中的任何一个都可以正常工作:

  • 处理0 CellClick事件并检查def query_for(stat, per_minute: false) base = "cast(payload ->> '#{stat}' as float)" return base unless per_minute base + " / (cast(payload ->> 'time_played' as float) / 60)" end
  • 处理DataGridView CellMouseClick事件并检查e.ColumnIndex=1
  • 处理DataGridView
  • RowHeaderMouseClick事件

<强>代码

e.ColumnIndex=1

为什么行标题单元格的选定属性为False?

这是以这种方式设计的,并记录在相关msdn文档的备注部分中:

  

DataGridViewHeaderCell.Selected Property

     

此属性对标题单元格没有意义。

以下是DataGridViewHeaderCell的Selected属性的源代码,它是DataGridViewRowHeaderCell的基本calss,因为您看到它始终返回false。

DataGridView

如何检查行标题单元格的其他属性?

如果您可以获取每一行或使用行标题单元格的属性,则使用HeaderCell属性。例如,在上面提到的任何事件中,您可以输入以下代码:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == -1)
        MessageBox.Show(e.RowIndex.ToString());
}

private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == -1)
        MessageBox.Show(e.RowIndex.ToString());
}

private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == -1)
        MessageBox.Show(e.RowIndex.ToString());
}

答案 1 :(得分:0)

&#34; :=&#34;不是赋值运算符=是。

,您的代码应为

DataGridView.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;

if you want to get rowheader这篇文章会有所帮助。