C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

NumericUpDownで上下矢印キーを無効化する方法

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■88451 / inTopicNo.1)  NumericUpDownで上下矢印キーを無効化する方法
  
□投稿者/ デップ (1回)-(2018/09/01(Sat) 22:57:30)

分類:[.NET 全般] 

VB2017を使っています。

NumericUpDownで上下矢印キーを無効化する方法を教えてください。
デフォルトだと、NumericUpDownにフォーカスがある状態で
上下矢印キーを押すと数値が増減します。
InterceptArrowKeysプロパティをFalseにすることで、
この増減を無効化することができるのですが
カーソルが右左矢印キーと同じように動くようになってしまいます。

この機能も無効化したいのですが
どのようにすれば良いでしょうか?




引用返信 編集キー/
■88452 / inTopicNo.2)  Re[1]: NumericUpDownで上下矢印キーを無効化する方法
□投稿者/ Hongliang (682回)-(2018/09/02(Sun) 08:50:46)
// 上下キーでカーソルが左右に動くのは単一行テキストボックスの仕様だったりするのですが。

カスタムコントロールとしてNumericUpDownの派生クラスを作り、
OnTextBoxKeyDownをオーバーライドして、
Up/Downが入力された時はe.Handled = Trueにする、という感じでしょうか。

Class ExNumericUpDown
  Inherits NumericUpDown
  Protected Overrides Sub OnTextBoxKeyDown(ByVal source As Object, ByVal e As KeyEventArgs)
    If e.KeyData = Keys.Up OrElse e.KeyData = Keys.Down Then
      e.Handled = True
      Return
    End If
    MyBase.OnTextBoxKeyDown(source, e)
  End Sub
End Class

引用返信 編集キー/
■88453 / inTopicNo.3)  Re[2]: NumericUpDownで上下矢印キーを無効化する方法
□投稿者/ デップ (2回)-(2018/09/02(Sun) 09:16:08)
自己解決しました
ありがとうございます。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ