我有一个按钮,点击我想要被禁用,它的背景图像被更改为null这里是我点击按钮时发生的代码
private void levelOne1001_Click(object sender, EventArgs e)
{
levelOne1001.Enabled = false;
levelOne1001.BackgroundImage = null;
scoreClass.genRandomNumber(100);
scoreClass.valOfQuestion = 100;
q1001 = true;
openQuestionForm();
}
以下是openQuestionForm();
private void openQuestionForm()
{
QuestionForm qForm = new QuestionForm();
scoreClass.iCount++;
qForm.Show();
this.Hide();
}
这是我将这个表格称为备份的地方
Level1Form l1Form = new Level1Form();
l1Form.Show();
该过程的工作原理是点击原始表格上的按钮转到问题表单,单击问题表单上的按钮,它将返回原始表格。但当我回到原始形式时,按钮仍然启用,图像仍然存在。有什么方法可以解决这个问题吗?
编辑:忘了说这是在WinForms中
答案 0 :(得分:1)
您正在实例化一个新的Level1Form,因此它返回到其默认状态,导致该按钮返回其默认状态。有几种可能的方法:
向Level1Form的构造函数添加一个参数,指示按钮应处于什么状态,如
Level1Form(bool enableButton) {
initComponent();
if(!enableButton) {
levelOne1001.Enabled = false;
levelOne1001.BackgroundImage = null;
}
}
或者,再次抓取相同的表单并重复使用它。您将需要在某处保留对它的引用并告诉它再次显示自己。或者,您可以从Application.OpenForms
答案 1 :(得分:0)
您正在创建一个新的Level1Form
实例,该实例与您修改的现有实例无关。
您需要重新显示原始实例。
答案 2 :(得分:0)
您需要在方法外的成员中记住您的初始表单实例,并在其上调用show。
Level1Form l1Form;
private void FirstTimeCreate()
{
l1Form = new Level1Form();
}
private void Reshow()
{
l1Form.Show();
}