我尝试在C#中显示/隐藏面板,但是当我点击button1时,我想看到panel1但是出现了panel2.当我按下button2时,panel2消失了.但是当我第一次在按钮2上爬行时,panel2没有出现.我不知道我的代码有什么问题,但它是:
public Form3()
{
InitializeComponent();
}
bool show1;
bool show2;
private void button1_Click(object sender, EventArgs e)
{
if(show1)
{
panel1.Visible = false;
show1 = false;
}
else
{
panel1.Visible = true;
show1 = true;
}
Application.DoEvents();
}
private void button2_Click(object sender, EventArgs e)
{
if (!show2)
{
panel2.Visible = true;
show2 = true;
}
else
{
panel2.Visible = false;
show2 = false;
}
Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud)
不要使用标志,因为您的按钮行为将由标志的状态决定.
最好是按照你想要的方式编写代码.如果您希望每个Button面板都可见,而其他面板不可见:
private void button1_Click(object sender, EventArgs e)
{
panel1.Visible = true;
panel2.Visible = false;
//Application.DoEvents();
}
private void button2_Click(object sender, EventArgs e)
{
panel2.Visible = true;
panel1.Visible = false;
//Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望每个按钮独立控制每个面板的可见性,请执行以下操作:
private void button1_Click(object sender, EventArgs e)
{
panel1.Visible = !panel1.Visible;
//Application.DoEvents();
}
private void button2_Click(object sender, EventArgs e)
{
panel2.Visible = !panel2.Visible;
//Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud)
最后,Application.DoEvents()可以删除(归功于Thorsten Dittmar),因为控件将在Click方法完成后立即返回UI线程.阅读他的评论和推荐的链接.
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |