更新:2007 年 11 月
命名空间:
System.Windows.Forms 程序集:
System.Windows.Forms(在 System.Windows.Forms.dll 中)
Public Event ColumnHeaderMouseClick As DataGridViewCellMouseEventHandler
Dim instance As DataGridView
Dim handler As DataGridViewCellMouseEventHandler
AddHandler instance.ColumnHeaderMouseClick, handler
public event DataGridViewCellMouseEventHandler ColumnHeaderMouseClick
public:
event DataGridViewCellMouseEventHandler^ ColumnHeaderMouseClick {
void add (DataGridViewCellMouseEventHandler^ value);
void remove (DataGridViewCellMouseEventHandler^ value);
}
/** @event */
public void add_ColumnHeaderMouseClick (DataGridViewCellMouseEventHandler value)
/** @event */
public void remove_ColumnHeaderMouseClick (DataGridViewCellMouseEventHandler value)
有关处理事件的更多信息,请参见使用事件。
下面的代码示例演示如何使用此事件执行通过编程实现的排序操作,该操作模拟在设置了另一行为时,单击 DataGridViewColumnHeaderCell 时的默认行为。在此示例中,SelectionMode 设置为 ColumnHeaderSelect,因此,单击 DataGridViewColumnHeaderCell 时会选择该列的内容。若要运行此示例,请将该代码粘贴到一个包含名为 dataGridView1 的 DataGridView 的窗体中,并确保所有事件都与它们的事件处理程序关联。
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
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
参考
其他资源