【问题标题】:how to select rows on cellclick, and also columns on column header click?如何在 cellclick 上选择行,以及在列标题上单击列?
【发布时间】:2014-04-17 10:40:17
【问题描述】:

您好,我想通过单击列标题选择列,并通过单击单元格选择行。

这段代码不能完成这项工作。

 Private Sub datagridview2_ColumnHeaderMouseClick(sender As Object, e As              DataGridViewCellMouseEventArgs) Handles datagridview2.ColumnHeaderMouseClick

    datagridview2.Columns(e.ColumnIndex).Selected = True

End Sub

我在代码中制作的这些 gridview 选项

    For Each c As DataGridViewColumn In datagridview2.Columns
        c.SortMode = DataGridViewColumnSortMode.NotSortable

        c.Selected = False
    Next

    datagridview2.SelectionMode = DataGridViewSelectionMode.FullRowSelect

希望有人能帮忙。干杯 b101

编辑:很好的列和行选择工作 fia 标题单击。现在需要通过单击单元格来选择一个单元格。 以下代码有效,但只需单击 2 次。第一次单击取消选择行或列,第二次单击选择单个单元格

Private Sub datagridview2_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles datagridview2.CellMouseClick
    datagridview2.SelectionMode = DataGridViewSelectionMode.CellSelect

End Sub

如果我尝试通过 e.columnindex e.rowindex 在单元格点击事件中选择卖出 它抛出一个超出范围的异常。这些索引完全是愚蠢的,比如 -1 或一些不存在的类似索引。

编辑 2: 此代码不起作用

Private Sub datagridview2_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles datagridview2.CellMouseClick


    datagridview2.SelectionMode = DataGridViewSelectionMode.CellSelect
    datagridview2.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = True




End Sub



Private Sub datagridview2_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles datagridview2.ColumnHeaderMouseClick

    datagridview2.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect
    datagridview2.Columns(e.ColumnIndex).Selected = True

End Sub

Private Sub datagridview2_RowHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles datagridview2.RowHeaderMouseClick
    datagridview2.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    datagridview2.Rows(e.RowIndex).Selected = True
End Sub

当点击标题时,它会跳转到 cellmouseclick 事件中

【问题讨论】:

  • 对不起,satson 和部门一起在桌上足球:))它有一个例外,我无法通过鼠标单击来选择单个表格单元格。
  • 在行标题上单击我要全行选择,在列标题单击上我要全列选择,在单元格单击上,我要单元格选择。
  • 您好 Satson 感谢您的努力。它有一个例外,我只能在列选择后切换到单元格选择。当 rowselection 为真时,我无法切换到单元格选择,首先我需要切换到列选择!
  • 如果你按列标题然后列选择工作,行标题选择行选择工作,如果你选择一个单元格选择单元格。现在你想要什么样的改变?
  • 抱歉,我忘记更新这个帖子了。这只是 cellklickmethod() 中的一个错字,我写的是 gridiew1 而不是 gridview2。一切正常。谢谢

标签: vb.net gridview selection


【解决方案1】:
Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
    DataGridView1.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect
    DataGridView1.Columns(e.ColumnIndex).Selected = True

End Sub

Private Sub DataGridView1_RowHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseClick
    If e.ColumnIndex = -1 And DataGridView1.SelectionMode <> DataGridViewSelectionMode.RowHeaderSelect And DataGridView1.Rows(e.RowIndex).Selected = False Then
        DataGridView1.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect
        DataGridView1.Rows(e.RowIndex).Selected = True
    End If
End Sub
Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
    If e.RowIndex > -1 And DataGridView1.SelectionMode <> DataGridViewSelectionMode.CellSelect Then
        DataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect
        DataGridView1.CurrentCell.Selected = True
    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2016-05-12
    • 2017-12-04
    相关资源
    最近更新 更多