- 題名: DataGridView 編集中→Enter で・・・・
- 日時: 2008/02/05 17:04:32
- ID: 21426
- この記事の返信元:
- (なし)
- この記事への返信:
- [21432] Re[1]: DataGridView 編集中→Enter で・・・・2008/02/06 1:54:49
- ツリーを表示
他のパターンです。
public partial class DataGridViewKeyDown : Form
{
public DataGridViewKeyDown()
{
InitializeComponent();
}
private void DataGridViewKeyDown_Load(object sender, EventArgs e)
{
// TODO: このコード行はデータを 'testdbDataSet.TEST' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
this.tESTTableAdapter.Fill(this.testdbDataSet.TEST);
}
public void SetFocusToTextBox()
{
this.textBox1.Focus();
}
}
// DataGridViewの「列の編集ダイアログ」で、このMyDataGridViewTextBoxColumnを選択すること。
public class MyDataGridViewTextBoxColumn : DataGridViewTextBoxColumn
{
public MyDataGridViewTextBoxColumn()
{
base.CellTemplate = new MyDataGridViewTextBoxCell();
}
}
// Cell
public class MyDataGridViewTextBoxCell : DataGridViewTextBoxCell
{
public override Type EditType
{
get
{
return typeof(MyDataGridViewTextBoxEditingControl);
}
}
protected override void OnKeyDown(KeyEventArgs e, int rowIndex)
{
if ((e.KeyCode & Keys.Enter) == Keys.Enter)
{
((DataGridViewKeyDown)this.DataGridView.Parent).SetFocusToTextBox();
}
base.OnKeyDown(e, rowIndex);
}
}
public class MyDataGridViewTextBoxEditingControl : DataGridViewTextBoxEditingControl
{
protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)
{
if ((e.KeyData & Keys.KeyCode) == Keys.Enter)
{
((DataGridViewKeyDown)this.EditingControlDataGridView.Parent).SetFocusToTextBox();
//エンターキーでフォーカスが他に行かないようにする。
this.EditingControlDataGridView.EndEdit();
return;
}
base.OnPreviewKeyDown(e);
}
}
分類:[.NET]
マルチポストしています。
C# と VB.NET の質問掲示板
http://bbs.wankuma.com/ #13846 です。
ルールに沿って、解決した場合は即座に報告します。すみません。
VS2005 C# 始めたばかりです。宜しくお願いします。
フォームに dataGridView と textBox のコントロールが置いてあります。
dataGridView の あるセルを編集し、Enterキーか、TABキーで、編集を確定し
textBox へフォーカスを移動させる方法が判りません。
普通に keyDown イベントで フォーカスをセットすると、編集中で無い時は
フォーカス移動するのですが、編集中の場合、一度下のセルへ移動後(Enterの場合)、
もう一度 Enterキーを押すことで textBox へフォーカスがあたります。
編集中でも、1度のエンターキーで編集を確定して、 textBoxへフォーカスを移動する
ことはできるのでしょうか?????