0

如何启用一个按钮是我的两个单选按钮之一被选中,并且textBox1有一个值?

我试过这个:

if (textBox1.Text != null && (radioButton1.Checked == true || radioButton2.Checked == true))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}

顺便说一句,我怎样才能限制文本框只接收数字?

4

5 回答 5

3

如果您使用的是 C# winForms:

关于仅使用数字,我会使用“Numeric Up-down”控件,因为它还为您提供了浮点数选项,而无需进行键检查和事件以及所有这些事情,并为您进行所有背景检查。

因此我会选择:

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
    if ((numericUpDown1.Value > 0) && //or some verification on your input variable
        ((radioButton1.Checked) || (radioButton2.Checked)))
    {
        button1.Enabled = true;
    }
    else
    {
        button1.Enabled = false;
    }
}

顺便说一句,我不确定为什么要使用单选按钮,如果您希望您的用户选择两个选项之一,并且无论选中哪个单选按钮,您都希望启用该按钮,我会使用组合框和将根据我的文本框(或数字向上/向下)启用按钮,并仅使用 comboBox.SelectedIndex 作为选项。

编辑后:

然后,请查看此线程仅在文本框中查找数字:如何制作仅接受数字的文本框?

于 2013-11-11T17:21:13.577 回答
1

解决方案 1:这是您的第一个问题的解决方案 - 基于单选按钮启用或禁用按钮。

if ((String.IsNullOrEmpty(textBox1.Text.ToString().Trim())) && (radioButton1.Checked  || radioButton2.Checked))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}

解决方案2:这是仅接受控制数字的解决方案,您需要在事件Textbox中编写以下代码。TextBox KeyPress

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar))
                e.Handled = true;
        }
于 2013-11-11T17:40:57.360 回答
1

使用string.IsNullOrEmpty,表示指定的字符串是 Nothing 还是 Empty 字符串。

if (!string.IsNullOrEmpty(textBox1.Text) && (radioButton1.Checked || radioButton2.Checked ))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}

我个人想使用String.IsNullOrWhiteSpace

于 2013-11-11T16:53:51.530 回答
1
 if (!string.IsNullOrEmpty(textBox1.Text) && (radioButton1.Checked || radioButton2.Checked))
     button1.Enabled = true;
 else
     button1.Enabled = false;

就需要数字而言,假设您使用的是 WinForms,我会使用带掩码的文本框。我不知道 ASP 等价物。

被 Satpal 勉强击败 :(

IsNullOrEmpty 将检查以确保它,顾名思义,不为空,并且输入了一些内容,因此它不是空白,也就是空字符串。

于 2013-11-11T16:54:07.593 回答
0

使文本框只接受数字

导入此命名空间

using System.Text.RegularExpressions;

然后在表单加载添加

Regex numbers_only= new Regex("^[0-9]{3}$");

在检查文本框不为空时,还要检查它是否只有数字

if(textBox1.Text != null & numbers_only.IsMatch(textBox1.Text))
{ your code }

注意:{3} 是可接受的数字长度。

于 2016-06-12T10:48:17.593 回答