【问题标题】:opening another window on press of enter button in datagridview在datagridview中按下回车按钮打开另一个窗口
【发布时间】:2013-03-09 14:40:18
【问题描述】:

我有大约 25000 行的大型数据网格。 [Windows 应用程序]

我正在尝试实现功能,例如,当我按下回车键时,我可以打开新窗口。在那个新窗口中,我以文本框和标签的形式显示了我按下 Enter 按钮的记录的数据。但不幸的是,我没有找到任何相关的事件。当我按下回车键时,选中的行会移动到下一条记录。

我还想知道是否有任何功能,当我加载 window[Grid] 时,默认情况下应该选择第一条记录。

我尝试过不同的事件,例如

 private void gvTradeFile_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            splitPopUp objSplit = new splitPopUp();
            objSplit.Show();
        }

没用。

private void gvTradeFile_Enter(object sender, EventArgs e)
        {
            splitPopUp objSplit = new splitPopUp();
            objSplit.Show();
        }

这也不起作用。

我参考了http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/6a73013f-4440-4d45-a322-63c4cae1bb39/这个链接,但什么也没得到。

有什么实现这个功能的想法吗?

【问题讨论】:

  • gvTradeFile_RowEnter 是不同的事件。 Enter 按钮是什么意思?是按钮控制吗?还是键盘上的 Enter 键?
  • 键盘上的输入键@FreddieFabregas

标签: c# .net winforms


【解决方案1】:

你需要处理grid的KeyDown事件:

private void gvTradeFile_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        var row = dataGridView1.CurrentRow; // retreive the current row
        // show the form
        // ...
    }
}

Enter 事件在键盘焦点进入 网格时发生,RowEnter 事件在一行接收到输入焦点时发生。这些事件与 Enter 键无关。

【讨论】:

  • var 行中有什么值?
  • 得到了预期的结果。谢谢。
  • row 的类型为 DataGridViewRow。如果您已将数据网格绑定到数据源,则可以使用DataBoundItem 属性来检索行值。
  • 如果我想在按下退出按钮时直接关闭窗口,我该怎么办?[现在与网格没有任何关系]@MD.Unicorn
  • @Freelancer 这个最好再问一个问题,或者比那个更好,谷歌一下!但这是您的答案:在表单 (btnClose) 上放置一个按钮并将其 DialogResult 属性设置为 Cancel。然后选择您的表单并将CancelButton 更改为btnCancel(您的新按钮)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多