【问题标题】:Programmatically Click Row Header in DataGridView C#以编程方式单击 DataGridView C# 中的行标题
【发布时间】:2014-07-14 18:32:36
【问题描述】:

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

我发现的所有内容都允许选择或突出显示行、列或单元格;但迄今为止没有点击行标题,即。触发

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

方法。

对此的任何帮助将不胜感激。

【问题讨论】:

  • dgvMyGrid_RowHeaderMouseClick(this, null); ?
  • 尝试将sender 设置为您想要“点击”的DataGridRowHeader
  • 您可以从 DataGridView 继承您的组件并在内部调用 OnRowHeaderMouseClick() 方法 - 这应该模拟真正的点击(尽管 DGV 充满了惊喜)。当然,您必须创建正确的事件参数。
  • 您的问题解决了吗?

标签: c# datagridview


【解决方案1】:

解决方案取决于您想要达到的目标。

要让 dgvMyGrid_RowHeaderMouseClick 中的代码以最简单的方式运行,就像 Tzah Mama 所写的那样,这样写就足够了:

dgvMyGrid_RowHeaderMouseClick(null, null);   

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

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

  • 简单地将sender 提供为dgvMyGrid
  • 如果您编写的不是 DataGridView 实例而是一个继承的类,您只需将 dvg 名称替换为 this

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

这是创建它的基本代码:

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。这将通过调用脚本起作用!相反,您还必须对选择进行编码:

 DGV1.Rows[row ].Selected = true;

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 2013-06-11
    • 1970-01-01
    • 2011-07-11
    • 2017-06-03
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    相关资源
    最近更新 更多