3

私は持っていて、NumericUpDown値の変更(そしてlostfocusではない)が新しい計算をするときに必要です

ValueChangedフォーカスが失われたときにコードをイベントに配置すると、この作業が行われます

コードをKeyPress入力した場合、番号がキーボードで入力されていない場合 (例: 番号をコピーして貼り付ける)、機能しません

次に、どのイベントを使用する必要がありますか?

これがキープレスの場合、押されたキーがさらに数値を連結し、これをすべて文字列に変換して10進数に変換し、計算を行う必要がありますが、押されたキーが数値でない場合は機能しません(バックスペースの例)

4

1 に答える 1

4

イベントを使用KeyUpして、CTRL+V による直接編集および貼り付け操作を確認できます。

その後、イベントをリッスンしてMouseUp、マウスの右ボタン (コンテキスト メニュー) で貼り付け操作を確認できます。

このサンプル コードでMessageBoxは、ユーザーが 9 より大きい数値を入力した場合に a が表示されます。

private void numericUpDown1_KeyUp(object sender, KeyEventArgs e)
{
    if (numericUpDown1.Value >= 10){
       numericUpDown1.Value = 0;
       MessageBox.Show("number must be less than 10!");
    }
}

private void numericUpDown1_MouseUp(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right) {
       if (numericUpDown1.Value >= 10){
           numericUpDown1.Value = 0;
           MessageBox.Show("number must be less than 10!");
       }
    }
}
于 2013-06-29T17:51:16.387 に答える