首页 新闻 搜索 专区 学院

转换页面以后如何让按钮保持红色?

0
[已解决问题] 解决于 2018-01-23 09:04

哈喽,哈喽

    早上好啊

    现在遇到这么一个问题。

    1)我在form1中做了一个白色的按钮,点下去以后呢,这个按钮就变成红色了,这个是正常的。

   2)但是,我一旦转换页面进入了form2窗体后,再返回form1窗体,发现,这个按钮又变成白色了。我要再次点击它才能变为红色,但是我再转换页面回来,它又恢复白色了

  我的问题就是,不管我如何转换页面,我希望只点击一次按钮,她就一直保持红色。

绿绿山水的主页 绿绿山水 | 菜鸟二级 | 园豆:248
提问于:2018-01-19 09:06
< >
分享
最佳答案
0

再返回时被重置了呀

奖励园豆:5
名字什么都是浮云 | 菜鸟二级 |园豆:357 | 2018-01-19 18:20

我知道,那 我该怎么办呢?

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-20 11:21

@绿绿山水: 将窗体设为单例模式,就可以了,或者使用静态变量

名字什么都是浮云 | 园豆:357 (菜鸟二级) | 2018-01-22 09:53

@有梦才会努力: 我想使用静态变量,但是报警了,要使用静态变量,该如何使用呢?

你把代码写出来吧。

绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-22 10:53
其他回答(1)
0

你好,这就涉及到作用域的问题了,我猜测你是用以下方式操作的:

在form1中:

        private void button1_Click(object sender, EventArgs e)
        {
            this.button1.BackColor = Color.Red;
            Form2 f2 = new Form2();
            f2.Show();
            this.Hide();
        }

 

在form2中:

        private void button1_Click(object sender, EventArgs e)
        {
            Form1 f1 = new Form1();
            f1.Show();
            this.Hide();
        }

 

仔细看代码,会发现:在form2中,是再次实例了一个form1,这其实和之前不是同一个实例了(默认的实例在Program.cs中用Application.Run(new Form1())生成的),你想在form2中返回到默认的form1实例,你可以用如下代码:

form2中:

 

form1中:

MrBug | 园豆:273 (菜鸟二级) | 2018-01-23 09:37

你说的很对,我是这么写代码的。

你说的如下代码怎么没写出来呢》?

你把代码写出来吧。

支持(0) 反对(0) 绿绿山水 | 园豆:248 (菜鸟二级) | 2018-01-23 11:40

@绿绿山水: 呃,非常抱歉,我是截的图,刚刚才发现图没有传成功!

form2中:

    public partial class Form2 : Form
    {
        Form _form1 = null;
        public Form2(Form from1)
        {
            _form1 = from1;

            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _form1.Show();
            this.Hide();
        }
    }

 

form1中:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            this.button1.BackColor = Color.Red;

            Form2 f2 = new Form2(this);
            f2.Show();
            this.Hide();
        }
    }

支持(0) 反对(0) MrBug | 园豆:273 (菜鸟二级) | 2018-01-23 14:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册