gpt4 book ai didi

c# - DataGridView 选择 RowHeader 或 ColumnHeader

转载 作者:太空狗 更新时间:2023-10-30 01:21:26 27 4
gpt4 key购买 nike

我正在尝试实现一个 DataGridView,它允许通过单击行标题选择整行或通过单击列标题选择整列。

我尝试覆盖 OnColumnHeaderMouseClick 函数并手动选择列。仅当我在事件发生之前将 SelectionMode 设置为 ColumnHeaderSelect 时才有效。

任何有关如何获得此行为的帮助将不胜感激!

这是来 self 的 DataGridView 的相关代码:

public class CustomDataGridView : DataGridView
{
protected override void OnRowHeaderMouseClick(DataGridViewCellMouseEventArgs e)
{
this.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;
base.OnRowHeaderMouseClick(e);
}

protected override void OnColumnHeaderMouseClick(DataGridViewCellMouseEventArgs e)
{
this.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
base.OnColumnHeaderMouseClick(e);
}
}

最佳答案

我认为您必须手动执行此操作:

protected override void OnRowHeaderMouseClick(DataGridViewCellMouseEventArgs e) {
this.ClearSelection();
for (int i = 0; i < this.Columns.Count; ++i) {
this.Rows[e.RowIndex].Cells[i].Selected = true;
}
base.OnRowHeaderMouseClick(e);
}

protected override void OnColumnHeaderMouseClick(DataGridViewCellMouseEventArgs e) {
this.ClearSelection();
for (int i = 0; i < this.Rows.Count; ++i) {
this.Rows[i].Cells[e.ColumnIndex].Selected = true;
}
base.OnColumnHeaderMouseClick(e);
}

确保 SelectionMode = CellSelect

关于c# - DataGridView 选择 RowHeader 或 ColumnHeader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15645254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com