2013-03-09 55 views
1

我有大约25000行数据的大网格。 [Windows应用程序]在datagridview中按下输入按钮时打开另一个窗口

因为我试图实现功能,当我按Enter键我可以打开新的窗口。在新窗口中,我显示的是我按下的文本框和标签的输入按钮的数据。但不幸的是,我没有发现任何相关的事件。当我按下输入按钮时,所选行将移动到下一个记录。

我也想知道是否有任何功能,当我加载窗口[网格]默认情况下,第一个记录应该被选中。

我已经尝试了不同的活动,如

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/这个链接,但没有得到它。

是否有任何想法实现此功能?

+0

'gvTradeFile_RowEnter'是不同的事件。 “Enter”按钮意味着什么?它是一个按钮控件?或者键盘上的Enter键? – 2013-03-09 06:01:39

+0

键盘上的Enter键@FreddieFabregas – Freelancer 2013-03-09 06:07:34

回答

3

您需要处理网格的KeyDown事件:当键盘焦点进入到网格,当行接收输入焦点发生RowEnter事件发生

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事件。这些事件与输入键无关。

+0

var row中的值是什么? – Freelancer 2013-03-09 06:10:00

+0

获得了预期的结果。谢谢。 – Freelancer 2013-03-09 06:16:32

+0

'row'是类型['DataGridViewRow'](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridviewrow.aspx)。如果将数据网格绑定到数据源,则可以使用['DataBoundItem'](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridviewrow.databounditem.aspx)属性检索行值。 – 2013-03-09 06:18:50

相关问题