我正在尝试制作一个简单的 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/