Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许减号(-)仅作为第一个符号?_C#_Wpf_Validation_Textbox - Fatal编程技术网

C# 如何允许减号(-)仅作为第一个符号?

C# 如何允许减号(-)仅作为第一个符号?,c#,wpf,validation,textbox,C#,Wpf,Validation,Textbox,我创建了一个WPF,里面有一个文本框。我只允许用户输入数字、退格和减号。我想允许用户只在第一个位置写减号,在所有其他数字之前。 我尝试了以下代码: private void textBox_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == 8) || ((e.KeyChar == 45) && (textBox.Text.Length

我创建了一个WPF,里面有一个文本框。我只允许用户输入数字、退格和减号。我想允许用户只在第一个位置写减号,在所有其他数字之前。 我尝试了以下代码:

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == 8) || ((e.KeyChar == 45) && (textBox.Text.Length == 0))))
    {
        e.Handled = true;
    }
}
但它只允许用户在开始时写减号,而不允许用户在编辑文本框的第一个符号时写减号

有更好的解决方案吗?

这可能会有帮助:以及

这将告诉您插入符号在文本框中的位置。您可以使用它检查您是否位于文本框的开头