簡體   English   中英

C#TextBox僅在字符串開頭允許減號(-)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM