我是C# 的新手,我有一个小项目。我被困在某个地方。我在这里解释了它(带有示例源代码):
我有一个表格申请。我要求用户从 2 个按钮中选择一个选项。有 2 个按钮(是和否)。我的代码是这样的:
public partial class Form1 : Form
{
public int choice=0;
public Form1()
{
if(choice == 0)
{
label.Text = "Please push one of these buttons :";
// And there are buttons below this label
}
else if(choice == 1)
{
label.Text = "You just pushed YES button";
}
else if(choice == 2)
{
label.Text = "You just pushed NO button";
}
}
private void buttonYes_Click(object sender, EventArgs e)
{
choice = 1;
/*
I have to use one of these here for redraw whole form
this.Refresh();
this.Invalidate();
*/
}
private void buttonNo_Click(object sender, EventArgs e)
{
choice = 2;
/*
I have to use one of these here for redraw whole form
this.Refresh();
this.Invalidate();
*/
}
}
如您所见,当用户单击“是”或“否”按钮之一时,应重新执行整个构造函数。标签应该是“你刚刚按下是/否按钮”。
但是当我使用 this.Refresh() 时,当我点击按钮时什么也没有发生。仍然标签是“请按下这些按钮之一:”。
当我使用 this.Invalidate() 时,所有按钮都消失了,标签仍然是“请按下这些按钮之一:”。
我该怎么办 ?
谢谢。
PS 我在问这个问题之前发现了这个问题。但如您所见,接受的答案对我不起作用。