c# - 有条件地显示/隐藏 Windows 表单元素

标签 c# .net winforms event-handling

我正在尝试制作一个简单的 Windows 窗体应用程序,它将根据前面元素的值显示不同的选项 - 例如,我在窗体顶部有四个单选按钮,每个按钮都会显示和隐藏各种其他元素在表单内 - 本质上是在一个表单中制作多个表单。

我在一个大的条件语句中设置了这个(这只是一小部分,但都是相似的):

private void Payment_Load(object sender, EventArgs e)
  {
            if (rdoMultChoice.Checked)
            {

                lblGroupBox1_MC.Visible = true;
                lblGroupBox1_FITB.Visible = false;
                lblGroupBox1_TF.Visible = false; 
             // etc...
            }
            else if (rdoFillInBlank.Checked)
            {
                lblGroupBox1_MC.Visible = false;
                lblGroupBox1_FITB.Visible = true;
                lblGroupBox1_TF.Visible = false;
             // etc...
            }

问题是,当我运行应用程序时,表单完全忽略这些语句,并且似乎只是使我的所有元素可见。

http://msdn.microsoft.com/en-us/library/754w18dd.aspx

这个链接有点类似于我的需求。我尝试使其适应我的情况,但它似乎不起作用(不能保证我做得正确......)。

看起来这应该是一件非常简单的事情,但我是 C# 新手,本周才开始使用它 - CS 类(class)的作业。顺便吐槽一下,我们预计在 15 周内培养 13 种语言的“专业知识”!由于大学提供的资源很少,到目前为止,我所开发的唯一专业知识是搜索文档和堆栈溢出! :)

最佳答案

我要做的第一件事就是在代码中放置一个断点:

private void Payment_Load(object sender, EventArgs e)
{
   if (rdoMultChoice.Checked)  // <-- Put breakpoint here.

您想知道Payment_Load是否正在执行。

接下来,在确定它正在执行后,检查您的代码以查看是否有任何内容可能会更改标签的可见性。它可能是另一段正在更改 .Visible 设置的代码。

关于c# - 有条件地显示/隐藏 Windows 表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749188/

相关文章:

c# - 如何为计算机视觉开发 AForge.NET

c# - 如何将 .NET 委托(delegate)附加到 mshtml 事件?

.net - 将数据库行批量发送到消息队列以进行长时间运行的操作

c# - 如何递增地循环窗体对象

c# - 设计师强制将资源嵌入到表单中,而不是使用 Resources.resx?

c# - 如何设计一个Bold Label控件?

c# - Elasticsearch 转义空格的正确方法,?并非在所有情况下都有效

C# app.config 问题 - ConfigurationErrorsException : Unrecognized element 'setting'

.net - .Net Framework 的生命周期有多长?

c# - 插入前验证数据的最佳方法