[英]C# TextBox allow minus sign (-) only in the beginning of string
抱歉,這是一個非常基本的問題,但是我是C#的新手,這是我的第一個Windows Form應用程序。
在我的TextBox下面的代碼中,它只接受小數點“,”,減號“-”,數字,並且還接受Delete和Backspace鍵的輸入(如果我輸入錯了,請更正我)。 因此,我可以輸入和刪除數字,例如:
-12.31
-.31
問題是我也可以輸入以下內容:
12-
有沒有辦法只輸入“-”(如果它是字符串的第一個字符)? 我嘗試了google,並嘗試提出了一些建議,但似乎沒有任何效果。
並感謝您的寶貴時間。
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && (e.KeyChar != ',') && (e.KeyChar != '-') && (e.KeyChar != (char)8))
{
e.Handled = true;
}
if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf(',') > -1))
{
e.Handled = true;
}
if ((e.KeyChar == '-') && ((sender as TextBox).Text.IndexOf('-') > -1))
{
e.Handled = true;
}
}
您可以使用SelectionStart
檢查光標在哪里:
var textBox = (TextBox)sender;
if (e.KeyChar == '-' && (textBox.SelectionStart !=0 || textBox.Text.Contains("-")))
{
e.Handled = true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.