[Tips][NumericUpDown] [PageDown][PageUp]キーで値を変化させる

[PageUp][PageDown]キーで値の増減を行うには、NumeriUpDownのKeyDownイベントを利用します。

[PageUp]が押されたとき、[PageDown]が押されたときをそれぞれ判断するとともに、Minimum値/Maximum値の範囲外にならないことを確認して値を増減させます。

VBの例

Private Sub NumericUpDown1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles NumericUpDown1.KeyDown
    If e.KeyCode = Keys.PageDown And
        NumericUpDown1.Value >= NumericUpDown1.Minimum + STEP_VALUE Then    '[PageDown]押下時

        NumericUpDown1.Value -= STEP_VALUE

    ElseIf e.KeyCode = Keys.PageUp And
        NumericUpDown1.Value <= NumericUpDown1.Maximum - STEP_VALUE Then    '[PageUp]押下時

        NumericUpDown1.Value += STEP_VALUE
    End If
End Sub

C#の例

private void NumericUpDown1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.PageDown &&
        numericUpDown1.Value >= numericUpDown1.Minimum + STEP_VALUE)	//[PageDown]押下時

        numericUpDown1.Value -= STEP_VALUE;

    else if (e.KeyCode == Keys.PageUp &&
        numericUpDown1.Value <= numericUpDown1.Maximum - STEP_VALUE)	//[PageUp]押下時

        numericUpDown1.Value += STEP_VALUE;
}

[Tips][NumericUpDown] 16進数で表示する

既定ではNumericUpDownコントロールは10進数表記となっています。

16進数表記にしたい場合はHexadecimalプロパティにTrueを設定します。

VBの例

' [16進数表記]チェックボックスのチェック状態変更時
Private Sub chkHex_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkHex.CheckedChanged
    '16進数表記のOn/Off切り替え
    NumericUpDown1.Hexadecimal = Not NumericUpDown1.Hexadecimal
End Sub

C#の例

// [16進数表記]チェックボックスのチェック状態変更時
private void chkHex_CheckedChanged(object sender, EventArgs e)
{
    //16進数表記のOn/Off切り替え
    numericUpDown1.Hexadecimal = !numericUpDown1.Hexadecimal;
}

[Tips][NumericUpDown] 3桁ごとに区切り記号表示する

NumericUpDownコントロールは、数値を3桁ごとに記号で区切って表示することができます。

桁区切り記号を表示する場合はThousandsSeparatorプロパティにTrueを設定します。

下記は桁区切り記号を表示する例です。

VBの例

' フォームロード時の処理
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '最小値と最大値を設定
    NumericUpDown1.Minimum = 0
    NumericUpDown1.Maximum = 10000000000
End Sub

' [3桁ごとに区切り記号表示]チェックボックスのチェック状態変更時
Private Sub chkThousandsSeparator_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkThousandsSeparator.CheckedChanged
    '3桁ごとの区切り表示On/Offを切り替える
    NumericUpDown1.ThousandsSeparator = Not NumericUpDown1.ThousandsSeparator
End Sub

C#の例

// フォームロード時の処理
private void Form5_Load(object sender, EventArgs e)
{
    // 最小値と最大値の設定
    numericUpDown1.Minimum = 0;
    numericUpDown1.Maximum = 10000000000;
}

// [3桁ごとに区切り記号表示]チェックボックスのチェック状態変更時
private void chkThousandsSeparator_CheckedChanged(object sender, EventArgs e)
{
    //3桁ごとの区切り表示On/Offを切り替える
    numericUpDown1.ThousandsSeparator = !numericUpDown1.ThousandsSeparator;
}