如果选中了2个单选按钮之一并且文本框具有值,则启用按钮

时间:2013-11-11 16:52:07

标签: c# button textbox radio-button

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

我试过这个:

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

顺便说一句,如何限制文本框只接收数字?

5 个答案:

答案 0 :(得分:2)

如果您使用的是C#winForms:

关于仅使用数字,我会使用“数字上下”控件,因为它还为您提供了浮点数的选项,而无需使用键检查和事件以及所有这些内容,并进行所有背景检查 - 对你而言。

因此我会选择:

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;
    }
}

顺便说一下,我不知道为什么要使用单选按钮,如果你想让你的用户选择其中一个选项而你想要启用按钮而不管正在检查哪个单选按钮,我会使用一个组合-box并根据我的文本框(或数字向上/向下)启用按钮,只需使用comboBox.SelectedIndex作为选项。

编辑后:

然后,请在文本框中查看此主题中的数字:How do I make a textbox that only accepts numbers?

答案 1 :(得分:1)

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

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

就个人而言,我想使用String.IsNullOrWhiteSpace

答案 2 :(得分:1)

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

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

被Satpal殴打:(

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

答案 3 :(得分: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;
        }

答案 4 :(得分: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}是可接受的数字长度。