10

これ:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx

... KeyPress イベントで e.KeyCode にアクセスできる必要があることを示していますが、アクセスできないようです。1、2、3、およびバックスペースのみを許可しようとしています:

private void textBoxQH1_KeyPress(object sender, KeyPressEventArgs e) {
  if ((e.KeyChar != '1') &&
      (e.KeyChar != '2') &&
      (e.KeyChar != '3') &&
      (e.KeyChar != (Keys.Back))) {
    e.Handled = true; 
  }
}

...しかし、「e.」例のように「KeyCode」値が表示されず、KeyChar を Keys.Back で試してみると、「演算子 '!=' は型 'char' および 'System.Windows.Forms.Keys' のオペランドに適用できません」と叱られます。 "

では、どうすればこれを達成できますか?

4

3 に答える 3

22

を比較してみてくださいe.KeyChar != (char)Keys.Back。Keys は列挙型であるため、char にキャストする必要があります。

これを参照してください: KeyPressEventArgs.KeyChar

于 2012-04-23T22:07:49.200 に答える
2

KeyDown代わりにイベントを使用してこれを解決しただけだと確信しています。さまざまなイベント引数があります。

于 2012-04-23T22:06:13.860 に答える
0

次のような条件を設定してみてください。

コード :

 if (e.KeyCode == (Keys.Back))
 {
        if(textBox1.Text.Length >=3)
        {
             if (textBox1.Text.Contains("-"))
             {
                 textBox1.Text.Replace("-", "");
             }
        }
 }
于 2016-09-22T05:07:17.377 に答える