動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石4: EditingControlShowingでIME /数値制限を仕込む

出典: WinForms DataGridView の編集モード完全ガイド — ReadOnly / EditMode / RowValidating の使い分け定石4: EditingControlShowingでIME /数値制限を仕込む

定石4: EditingControlShowingでIME /数値制限を仕込む (csharp)#d9111a623822
// ✅定石4: EditingControlShowingで数値のみ入力を強制
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (dataGridView1.CurrentCell?.OwningColumn.Name == "amount")
    {
        var textBox = e.Control as TextBox;
        if (textBox != null)
        {
            //既存ハンドラを外す(重複登録防止)
            textBox.KeyPress -= NumericOnly_KeyPress;
            textBox.KeyPress += NumericOnly_KeyPress;
 
            // IMEをOFFに(半角強制)
            textBox.ImeMode = ImeMode.Disable;
        }
    }
}
 
private void NumericOnly_KeyPress(object sender, KeyPressEventArgs e)
{
    //数字(0-9)と制御文字(BackSpace等)のみ許可
    if (!char.IsDigit(e.KeyChar)&& !char.IsControl(e.KeyChar))
    {
        e.Handled = true;   // ←キー入力をキャンセル
    }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #d9111a623822
  • lines: 26
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石4: EditingControlShowingでIME /数値制限を仕込む」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ