2011-10-22 20 views
1

タブキンではなく、セルを変更したいアプリケーションの "gridview"に問題があります。 グリッドビューの次のセルに行くkeypressイベント

私はCODE LIKE THIS ON KeyPressイベントとkeyDownイベントのいくつか....

private void GridView1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     e.Handled = true; 
     SendKeys.Send("{TAB}"); 
    } 
} 

を得たが、私はすでにそれにデータを持っているでしょうした後、それが動作します。私が欲しい

は、新しい行にタブがここにGridView

答えて

0

で生成されるようにそのが働かなければなら入る押しにあるボタンのクリックで動的に行を作成する方法についての良い記事です。唯一の違いは、キープレスで呼び出す必要があるため、必要に応じて変更するだけです。

http://geekswithblogs.net/casualjim/articles/51360.aspx

+0

読むOP ...助けを願っています。彼/彼女はwinformアプリを持っています。 – adatapost

1

あなたは次のように試すことができます。..

をEditingControlShowingイベントを処理し、編集コントロールのイベントにアクセスだけで編集制御のためのKeyDownとKeyPressイベントのイベントを処理するには。 more info

あなたは、あなたが望むことを行うためにDataGridViewから派生しなければならないと言いました。これは、キーボード操作が含まれているコントロールで動作するためです。ここで

は、あなたが右にフォーカス移動キーを入力するために必要なコードは次のとおりです。

public class dgv : DataGridView 
{ 
protected override bool ProcessDialogKey(Keys keyData) 
{ 
    Keys key = (keyData & Keys.KeyCode); 
    if (key == Keys.Enter) 
    { 
     return this.ProcessRightKey(keyData); 
    } 
    return base.ProcessDialogKey(keyData); 
} 
protected override bool ProcessDataGridViewKey(KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
     return this.ProcessRightKey(e.KeyData); 
    } 
    return base.ProcessDataGridViewKey(e); 
    } 

} 

私はそれはあなたが

+0

ProcessDialogKeyメソッドとProcessDataGridViewKeyメソッドをオーバーライドするためのソリューションは、ちょっとしたトリックでした。素晴らしいソリューションをありがとう。これはhttp://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.processdatagridviewkey.aspxでも説明されています。 –

関連する問題