我有這樣一個數據網格視圖: 保持數據網格視圖的光標點特定列始終
我對窗口工作application..here司機專欄中,我得給司機id..then我點擊進入..那時光標正在移動下一行釋放按鈕.. 我不想移動光標下一行按鈕..在點擊輸入後,我想讓我的光標移動到下一行驅動程序ID列.. 如何我可以設置標籤順序只在特定的列上。
任何幫助是非常可觀..
我有這樣一個數據網格視圖: 保持數據網格視圖的光標點特定列始終
我對窗口工作application..here司機專欄中,我得給司機id..then我點擊進入..那時光標正在移動下一行釋放按鈕.. 我不想移動光標下一行按鈕..在點擊輸入後,我想讓我的光標移動到下一行驅動程序ID列.. 如何我可以設置標籤順序只在特定的列上。
任何幫助是非常可觀..
下面是創建從DataGridView
派生的自定義類和設置的ENTER鍵,以便將沿着該行移動行爲的代碼,但跳過最後一列(在OP案例中的按鈕列)
class MyCustomDGV : DataGridView
{
private int currentCol = 0;
private int currentRow = 0;
// Store the current cell position.
protected override void OnCellEnter(DataGridViewCellEventArgs e)
{
currentCol = e.ColumnIndex;
currentRow = e.RowIndex;
base.OnCellEnter(e);
}
protected override bool ProcessDialogKey(Keys keyData)
{
// Extract the key code from the key value.
Keys key = (keyData & Keys.KeyCode);
// Handle the ENTER key as if it were a RIGHT ARROW key.
if (key == Keys.Enter)
{
if (currentCol >= this.ColumnCount - 2)
{
return this.ProcessEnterKey(keyData);
}
else
{
return this.ProcessRightKey(keyData);
}
}
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
// Handle the ENTER key as if it were a RIGHT ARROW key.
if (e.KeyCode == Keys.Enter)
{
if (currentCol >= this.ColumnCount - 2)
{
return this.ProcessEnterKey(e.KeyData);
}
else
{
return this.ProcessRightKey(e.KeyData);
}
}
return base.ProcessDataGridViewKey(e);
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (currentCol >= this.ColumnCount - 2)
{
e.SuppressKeyPress = true;
e.Handled = true;
this.ProcessEnterKey(e.KeyData);
return;
}
else
{
}
}
base.OnKeyDown(e);
}
}
所以我創建這個類後,我不想在我的網格視圖頁面寫任何代碼? – user3262364
只需將減速度更改爲「MyCustomDGV」。例如,你的舊'DataGridView'被聲明爲:'this.dataGridView1 = new System.Windows.Forms.DataGridView();'現在它成爲:'this.dataGridView1 = new MyCustomDGV();' – etaiso
先生,我寫了一些代碼在我的DGVall_CellEndEdit點擊事件中,現在代碼不起作用 – user3262364
您可以創建自己的自定義類,該類派生'DataGridView'並實現'ProcessDataGridViewKey'方法。有關更多信息+示例,請參閱[THIS](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.processdatagridviewkey%28v=vs.110%29.aspx)。 – etaiso
先生,你能給點更多的想法嗎? – user3262364
創建自定義類之後我必須在ProcessDataGridViewKey事件中編寫哪些代碼? – user3262364