DataGridView 事件


.NET Framework 类库
DataGridView..::.ColumnHeaderMouseClick 事件

更新:2007 年 11 月

在用户单击列标题时发生。

命名空间:  System.Windows.Forms
程序集:  System.Windows.Forms(在 System.Windows.Forms.dll 中)

语法

Visual Basic(声明)
Public Event ColumnHeaderMouseClick As DataGridViewCellMouseEventHandler
Visual Basic (用法)
Dim instance As DataGridView
Dim handler As DataGridViewCellMouseEventHandler

AddHandler instance.ColumnHeaderMouseClick, handler
C#
public event DataGridViewCellMouseEventHandler ColumnHeaderMouseClick
Visual C++
public:
 event DataGridViewCellMouseEventHandler^ ColumnHeaderMouseClick {
    void add (DataGridViewCellMouseEventHandler^ value);
    void remove (DataGridViewCellMouseEventHandler^ value);
}
J#
/** @event */
public void add_ColumnHeaderMouseClick (DataGridViewCellMouseEventHandler value)
/** @event */
public void remove_ColumnHeaderMouseClick (DataGridViewCellMouseEventHandler value)
JScript
JScript 不支持事件。
备注

有关处理事件的更多信息,请参见使用事件

示例

下面的代码示例演示如何使用此事件执行通过编程实现的排序操作,该操作模拟在设置了另一行为时,单击 DataGridViewColumnHeaderCell 时的默认行为。在此示例中,SelectionMode 设置为 ColumnHeaderSelect,因此,单击 DataGridViewColumnHeaderCell 时会选择该列的内容。若要运行此示例,请将该代码粘贴到一个包含名为 dataGridView1DataGridView 的窗体中,并确保所有事件都与它们的事件处理程序关联。

Visual Basic
Private Sub dataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, _
    ByVal e As DataGridViewCellMouseEventArgs) _
    Handles dataGridView1.ColumnHeaderMouseClick

    Dim newColumn As DataGridViewColumn = _
        dataGridView1.Columns(e.ColumnIndex)
    Dim oldColumn As DataGridViewColumn = dataGridView1.SortedColumn
    Dim direction As ListSortDirection

    ' If oldColumn is null, then the DataGridView is not currently sorted.
    If oldColumn IsNot Nothing Then

        ' Sort the same column again, reversing the SortOrder.
        If oldColumn Is newColumn AndAlso dataGridView1.SortOrder = _
            SortOrder.Ascending Then
            direction = ListSortDirection.Descending
        Else

            ' Sort a new column and remove the old SortGlyph.
            direction = ListSortDirection.Ascending
            oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None
        End If
    Else
        direction = ListSortDirection.Ascending
    End If

    ' Sort the selected column.
    dataGridView1.Sort(newColumn, direction)
    If direction = ListSortDirection.Ascending Then
        newColumn.HeaderCell.SortGlyphDirection = SortOrder.Ascending
    Else
        newColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending
    End If

End Sub
C#
private void dataGridView1_ColumnHeaderMouseClick(
    object sender, DataGridViewCellMouseEventArgs e)
{
    DataGridViewColumn newColumn = dataGridView1.Columns[e.ColumnIndex];
    DataGridViewColumn oldColumn = dataGridView1.SortedColumn;
    ListSortDirection direction;

    // If oldColumn is null, then the DataGridView is not sorted.
    if (oldColumn != null)
    {
        // Sort the same column again, reversing the SortOrder.
        if (oldColumn == newColumn &&
            dataGridView1.SortOrder == SortOrder.Ascending)
        {
            direction = ListSortDirection.Descending;
        }
        else
        {
            // Sort a new column and remove the old SortGlyph.
            direction = ListSortDirection.Ascending;
            oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
        }
    }
    else
    {
        direction = ListSortDirection.Ascending;
    }

    // Sort the selected column.
    dataGridView1.Sort(newColumn, direction);
    newColumn.HeaderCell.SortGlyphDirection =
        direction == ListSortDirection.Ascending ?
        SortOrder.Ascending : SortOrder.Descending;
}
平台

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.5、3.0、2.0
另请参见

参考

其他资源

标记 :


Page view tracker