繁体   English   中英

以编程方式单击DataGridView C#中的行标题

[英]Programmatically Click Row Header in DataGridView C#

我正在到处搜索代码,以在处理了某些代码序列之后以编程方式单击特定的DataGridView行标题。

我发现的所有内容都可以选择或突出显示行,列或单元格; 但到目前为止没有任何信息单击行标题,即。 发射

private void dgvMyGrid_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) {}

方法。

任何帮助,将不胜感激。

解决方案取决于您要实现的目标。

正如Tzah Mama所写,仅以最简单的方式使dgvMyGrid_RowHeaderMouseClick中的代码运行,就足以编写:

dgvMyGrid_RowHeaderMouseClick(null, null);   

注1:重要的是在事件代码中添加一条注释,以记录可以通过这种特殊而不正常的方式调用它。 特别是因为它不提供代码可能期望的参数。

注意2:如果您的代码需要一些参数,则可以尝试提供它们:

  • 简单地将sender提供为dgvMyGrid是微不足道的
  • 如果您不是在编码DataGridView实例,而是在编写继承的类,则只需使用this替换dvg名称

  • 第二个参数很复杂,并非所有部分都可以轻松提供,但也可能不需要。

这是创建它的基本代码:

int row = ??    // your target row
int col= -1;    // no column
int x = 0;      // no offsets..
int y = 0;      // ..
int delta = 0; // no mouse wheel

DataGridViewCellMouseEventArgs E = new DataGridViewCellMouseEventArgs(col, row, x, y,
                          new MouseEventArgs(MouseButtons.Left, clicks, x, y, delta));

注3:有时重要的是要知道事件是由真实的用户操作还是由代码调用的。 将参数保留为空是发出信号的一种简单方法。 再次:关键是文档

但是也许您需要单击rowHeader的效果 根据SelectionMode,可能是行选择。 调用脚本将无法正常工作! 相反,您还必须对select进行编码:

 DGV1.Rows[row ].Selected = true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM