NumericUpDown
(nudqty)に入力できる最大整数を制限する方法を教えてください。私のコードは下向きの矢印を使って値を変更するときに値を制限しますが、入力するときは値を制限します。 NumericUpDown
で可能でない場合は、TextBox
に変更してください。DataGridViewから選択した値に応じてNumericUpDown値を制限します
private void dgv1_CellClick(object sender, DataGridViewCellEventArgs e)
{
lblqty.Text = dgv1.SelectedRows[0].Cells[5].Value.ToString();
nudqty.Maximum = Convert.ToDecimal(lblqty.Text);
}
NUDは検証されませんが、それはあなたが行われているという事実を知っていた後まで入力したものタイピング。 "100"と入力してBackspaceキーを押すと、余分な "0"が修正される可能性があります。その事実を知る唯一の方法は、NUDがフォーカスを失ったときです。必然的に、[追加]ボタンを押すまで、最大プロパティ値は適用されません。これを回避するには、Validatingイベントを使用し、Maximumを設定しないで、不平を言うことができます。しかし、実際には、ユーザーが簡単にカートの間違いを修正できることを確認してください。 –
コントロールがフォーカスを失ったとき、またはユーザーが上/下ボタンをクリックしたとき、またはユーザーがキーボードの矢印キーを使用して値を変更したときに、「最大」がコントロールに適用されます。そして、すべての場合において、コントロールから 'Value'を尋ねると' Maximum'が適用され、値があなたに返されます。だから、ユーザーが入力するテキストについて心配しないでください。 'Maximum'プロパティを設定し、' Value'プロパティを使うと常に有効な値を取得します。 –
@HansPassant Validatingを使用してサンプルコードを表示できますか?私はそれを使う方法を知らない。 – ItaChi