【问题标题】:How to make a textbox invisible when radio button checked选中单选按钮时如何使文本框不可见
【发布时间】:2013-10-28 20:26:11
【问题描述】:

我正在开发 C# 应用程序。我在一个组面板中有 10 个单选按钮,所以现在如果我只检查了 radioButton10,那么 textBox1 将是可见的,如果我检查了其他单选按钮的某个人(radioButton1 ....radioButton9),那么 textBox1 应该是不可见的。 我编写了以下代码,但 textBox1 仍然可见。如果代码是正确的,我可以在哪里编写它(表单加载,某些功能......等)如果不是,那么请帮助。

    public TeamInfoForm()
    {
        InitializeComponent();
        showTeam();
        if (radioButton10 .Checked)
            textBox1 .Visible = true;
        else
            textBox1 .Visible = false;

    }

【问题讨论】:

  • 如果你设置了一个断点,它会到达那个 if 语句吗?
  • 请发布更多代码?你在哪里有上面的代码?用什么方法?
  • 是的,已经到了,但问题是,textBox1只接受第一个操作checked与否,如果把checked改成unchecked什么都不会发生

标签: c# radio-button


【解决方案1】:

我认为您忘记实现选中或取消选中单选按钮时发生的事件。尝试为单选按钮添加“OnCheckChanged”事件,如果您希望该事件发生,则必须将 autopostback 设置为 true,否则该事件将不起作用。

【讨论】:

  • 是的。我用 CheckedChange 事件做到了。 YAHOOOOOOOO 谢谢老兄。
  • "必须将 autopostback 设置为 true" winforms 因此没有必要
  • @AbdullahBahattab:他可能正在使用 winforms(组面板 --> GroupBox)。 winforms 中没有AutoPostBack,因为没有回发。
  • @Tim:我不知道他为此使用了winform。确实不需要自动回发。
【解决方案2】:

最初,您必须在表单设计器中将 textBox1 的 Visible 属性设置为 false。否则,您可以在 FormInitialize() 方法中设置它。接下来,您将编写如下代码

    public void ToggleTextBox()
    {
        textBox1.Visible = radioButton3.Checked;
    }

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {
        ToggleTextBox();
    }

    private void radioButton2_CheckedChanged(object sender, EventArgs e)
    {
        ToggleTextBox();
    }

    private void radioButton3_CheckedChanged(object sender, EventArgs e)
    {
        ToggleTextBox();
    }

【讨论】:

  • 这对我来说非常有用,完美地解决了我的需求。
猜你喜欢
  • 2014-05-17
  • 2019-01-16
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 2019-08-10
  • 1970-01-01
相关资源
最近更新 更多