2013-03-09 45 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

相關問題