none
DataGridView で Enterキーを無効にするにはどうしたらいいですか? RRS feed

  • 質問

  • DataGridView上で、Enterキーを押すと

    1行下の行に移動します。

    これを無効にするには、どう設定したらよいですか?

    2006年10月31日 3:00

すべての返信

  • dataGridViewのCell に何か入力しているとき、KeyDownが走らないのはなぜですか?
    http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=864757&SiteID=7

    これはどうなりましたでしょうか?
    これが実現できているのならば、以下のようにしてみて下さい。

            protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)

            {

                if ((e.KeyData & Keys.KeyCode) == Keys.Enter)

                {

                      this.EditingControlDataGridView.EndEdit();

                      return;

                }

     

                base.OnPreviewKeyDown(e);

            }

     

    2006年10月31日 4:51
    モデレータ
  • 上記の内容は実現できています。

    ①protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e)
    ②private void DataGridView1_KeyDown(object sender, KeyEventArgs e)

    今のところ ①と②の両方を書いています。

    両方にブレイクポイントを置いて、調べたのですが
    ①は、セルに何か入力している時や入力後に呼ばれ
    ②は、セルに何も入力をしなかったときに呼ばれています。

    何か入力された場合は、①が呼ばれ、下の行には行きません。
    ですが、何も入力しなかったときに
    ②が呼ばれて、下の行に行かないようにするにはどうしたらよいですか?

     

    2006年10月31日 7:30
  • こちらの方法を応用してみて下さい。

    DataGridViewのKeyDownイベント内で、キーを無効にする方法を教えてください。
    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=874864&SiteID=7

    2006年10月31日 8:22
    モデレータ
  • ありがとうざいます。

        private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
      {

            if (e.KeyData == Keys.Enter)

                e.Handled = true;

        }

     

    で、Enterキーが無効になりました

    2006年10月31日 8:25