Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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# - Fatal编程技术网

C# 只在“后”写两个字符&引用;?

C# 只在“后”写两个字符&引用;?,c#,C#,在文本框中,在这个字符后面“.”我希望用户只输入两个类似这样的字符 100.00。我该怎么做呢?如果你的目标只是数字,请使用: winforms wpf asp.net 如果您的目标只是数字,请使用: winforms wpf asp.net 执行事件以限制和修改内容 private void textBox1_TextChanged(object sender, EventArgs e) { int i = textBox1.Text.IndexOf("."); i

在文本框中,在这个字符后面“.”我希望用户只输入两个类似这样的字符
100.00
。我该怎么做呢?

如果你的目标只是数字,请使用:

winforms

wpf

asp.net

如果您的目标只是数字,请使用:

winforms

wpf

asp.net

执行事件以限制和修改内容

private void textBox1_TextChanged(object sender, EventArgs e)
{
     int i = textBox1.Text.IndexOf(".");
     if ((i != -1) && (i == textBox1.Text.Length - 4))
     {
         textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
         textBox1.SelectionStart = textBox1.Text.Length;
     }
}
实现事件以限制和修改内容

private void textBox1_TextChanged(object sender, EventArgs e)
{
     int i = textBox1.Text.IndexOf(".");
     if ((i != -1) && (i == textBox1.Text.Length - 4))
     {
         textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
         textBox1.SelectionStart = textBox1.Text.Length;
     }
}

您可以检查textbox.text的长度后的点,这样做。 找到“.”的索引,然后如果textbox.text.length大于该索引+3,则删除最后一个字母

int indexofDot=textbox.Text.indexOf('.');
if(textbox.text.Length>indexofDot+3) {... }
要删除最后一个字母,只需将字符串复制到另一个临时字符串上,并删除最后一个字符
然后将其返回到textbox.Text

您可以检查textbox的长度。点后的Text可以执行此操作。 找到“.”的索引,然后如果textbox.text.length大于该索引+3,则删除最后一个字母

int indexofDot=textbox.Text.indexOf('.');
if(textbox.text.Length>indexofDot+3) {... }
要删除最后一个字母,只需将字符串复制到另一个临时字符串上,并删除最后一个字符 然后将其返回文本框。Text

您可以使用其事件验证输入:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    TextBox txt = (TextBox)sender;
    double d;
    if (!double.TryParse(txt.Text, out d))
    {
        MessageBox.Show("Please enter a valid number");
        return;
    }

    string num = d.ToString();
    string decSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
    int numDecPlaces = 0;
    int decSepIndex = num.LastIndexOf(decSeparator);
    if (decSepIndex != -1)
        numDecPlaces = num.Substring(decSepIndex).Length;
    if (numDecPlaces > 2)
    {
        MessageBox.Show("Please enter two decimal places at a maximum");
        return;
    }
}
您可以使用它的事件来验证输入:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    TextBox txt = (TextBox)sender;
    double d;
    if (!double.TryParse(txt.Text, out d))
    {
        MessageBox.Show("Please enter a valid number");
        return;
    }

    string num = d.ToString();
    string decSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
    int numDecPlaces = 0;
    int decSepIndex = num.LastIndexOf(decSeparator);
    if (decSepIndex != -1)
        numDecPlaces = num.Substring(decSepIndex).Length;
    if (numDecPlaces > 2)
    {
        MessageBox.Show("Please enter two decimal places at a maximum");
        return;
    }
}

首先,您需要确定您在功能上是否希望:

  • 防止即使用面罩,或
  • 验证即使用正则表达式
实现根据所选技术的不同而有所不同

当您选择预防时,您可以寻找一个控件。它以WinForms提供,可以在web上找到WPF


当您选择验证时,请对其中任何一项使用最佳实践

首先,您需要确定您在功能上是否希望:

  • 防止即使用面罩,或
  • 验证即使用正则表达式
实现根据所选技术的不同而有所不同

当您选择预防时,您可以寻找一个控件。它以WinForms提供,可以在web上找到WPF


当您选择验证时,请对其中任何一项使用最佳实践

ASP.NET、Winforms还是WPF?在任何情况下,带面具的文本框可能是最好的解决方案。-我同意Daniel的观点,知道你在使用哪种技术很重要。另一方面,知道您尝试了什么对我们回答您的问题很有用。您提出的问题类似于]ASP.NET、Winforms或WPF?在任何情况下,带面具的文本框可能是最好的解决方案。-我同意Daniel的观点,知道你在使用哪种技术很重要。另一方面,知道你尝试了什么对我们回答你的问题是有用的。你问的问题类似于]总结会使这成为更好的答案,因为它的有用性完全依赖于链接的网站,而我们无法控制链接的内容。@RhysW什么总结?这是一个使用它来解决问题的总结,为什么它有用,也许还有一个示例实现。在一个清晰的背景下给出的信息越多,答案就越好,对未来面临这个问题的人来说可能就越有用。如果解决方案已经准备好了,我会发布它,但总的来说,我反对提供解决方案,我更喜欢提供想法,它有助于学习编码,而不仅仅是复制粘贴解决方案。有些人,包括我自己在内,在视觉上学习得更好,例如,一旦我看到一个解决方案,就更容易理解和操作到一系列不同的解决方案中,以备将来使用,并掌握一个新的概念摘要将使这成为一个更好的答案,就目前而言,它的有用性完全依赖于链接站点,而我们无法控制链接站点的内容。@RhysW总结了什么?这是一个使用它来解决问题的总结,为什么它有用,也许还有一个示例实现。在一个清晰的背景下给出的信息越多,答案就越好,对未来面临这个问题的人来说可能就越有用。如果解决方案已经准备好了,我会发布它,但总的来说,我反对提供解决方案,我更喜欢提供想法,它有助于学习编码,而不仅仅是复制粘贴解决方案。有些人,包括我自己,在视觉上学习得更好,例如,一旦我看到一个解决方案,就更容易理解和操纵到一系列不同的解决方案中,以备将来使用,并掌握一个新概念