C# 如果选中两个单选按钮中的一个且文本框中有值,则启用按钮

C# 如果选中两个单选按钮中的一个且文本框中有值,则启用按钮,c#,button,textbox,radio-button,C#,Button,Textbox,Radio Button,如果选中了两个单选按钮中的一个,并且textBox1有一个值,如何启用按钮 我试过这个: if (textBox1.Text != null && (radioButton1.Checked == true || radioButton2.Checked == true)) { button1.Enabled = true; } else { button1.Enabled = false; } 顺便问一下,如何将文本框限制为仅接收数字?Use,指示指定的字符串

如果选中了两个单选按钮中的一个,并且
textBox1
有一个值,如何启用按钮

我试过这个:

if (textBox1.Text != null && (radioButton1.Checked == true || radioButton2.Checked == true))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}
顺便问一下,如何将文本框限制为仅接收数字?

Use,指示指定的字符串是空字符串还是空字符串

if (!string.IsNullOrEmpty(textBox1.Text) && (radioButton1.Checked || radioButton2.Checked ))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}
就我个人而言,我想使用

至于需要一个数字,假设您使用的是WinForms,我会选择一个带掩码的文本框。我不知道ASP的等价物

被Satpal略微击败:(

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

如果您使用的是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;
    }
}
顺便说一句,我不知道为什么要使用单选按钮,如果你想让你的用户从两个选项中选择一个,并且不管选中哪个单选按钮,你都想启用该按钮,我会使用组合框,并根据我的文本框(或数字上/下)启用该按钮只需使用comboBox.SelectedIndex作为选项

编辑后:


然后,请在文本框中查看此线程中的数字:

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

if ((String.IsNullOrEmpty(textBox1.Text.ToString().Trim())) && (radioButton1.Checked  || radioButton2.Checked))
{
    button1.Enabled = true;
}
else
{
    button1.Enabled = false;
}
解决方案2:这是只接受
文本框
控件中的数字的解决方案 您需要在
TextBox
KeyPress
事件中处理以下代码的写入

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar))
                e.Handled = true;
        }

使文本框只接受数字

导入此命名空间

使用System.Text.RegularExpressions;

然后在loadadd表单中

Regex numbers\u only=newregex(“^[0-9]{3}$”);

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

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

注{3}数字的长度是否可以接受。

您使用的是Win表单还是什么?您将代码放在了哪里?您需要在每个单选按钮和文本框的事件处理程序中执行此操作。感谢您的建议,但我更喜欢使用常规文本框。非常感谢您的回答。结果并不是我想要的那样。只有当text框已填充多次,按钮将变为启用状态。非常感谢您的回答。结果与我所希望的不完全一样。只有当文本框已填充多次时,按钮才会变为启用状态。@avi12“填充多次”是什么意思?设置断点并单步执行,确保文本和选中状态的值正确。
if(textBox1.Text != null & numbers_only.IsMatch(textBox1.Text))
{ your code }