如何限制可以輸入到我的NumericUpDown
(nudqty)中的max int。我的代碼工作時,它會限制使用向下箭頭更改它的值,但是當我鍵入它時不會。建議請告訴我,如果它不可能在NumericUpDown
,並將其更改爲TextBox
。限制NumericUpDown值取決於從DataGridView中選擇的值
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失去焦點時。不可避免地,最大屬性值不會被應用,直到您按下添加按鈕。解決方法是使用驗證事件,而不是設置最大值,讓你抱怨。但是,確實,只要確保用戶可以輕鬆糾正購物車中的錯誤。 –
當控件失去焦點或用戶單擊向上/向下按鈕或用戶使用鍵盤箭頭鍵更改值時,「最大值」適用於控件。並且在所有情況下,當您詢問控制的「數值」時,將應用「最大值」,然後將數值返回給您。所以不要擔心用戶輸入的文字。設置'Maximum'屬性,如果您使用'Value'屬性,則您將始終獲得有效值。 –
@HansPassant您可以使用驗證向我展示示例代碼嗎?我不知道如何使用它。 – ItaChi