winforms 如何调用mainfom中定义为void的类文件方法?

pvcm50d1  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个(表单)和一个(类文件)。但是我把这个函数写成了void,它变成了void,不能在表单上工作。我不知道如何改变它。
(in C# winforms应用程序)

颜色. cs

class Colors
    {
        MainForm mainForm = new MainForm();
        public IEnumerable<Control> Controls { get; private set; }

        public void themecolor()
        {

            foreach (Control c in mainForm.Controls)
            {
                bool Button = false;

                if ((Button ))
                {
                    
                    c.BackColor = Color.Red;
                    c.ForeColor = Color.White;
                }
                else
                {
                    c.BackColor = Color.Green;
                    c.ForeColor = Color.Orange;
                }
            }
        }
    }
}

主表单. cs

switch (id)
            {
                case 1:
                    Colors cr = new Colors();
                    cr.themecolor();
                    MovePnl(btnHome);
                    Lbltitle.Text = "HOME";
                    panel3.Visible = true;
                    break;
            }
bz4sfanl

bz4sfanl1#

对于您想要的示例,您的MainForm应该只有一个示例,并且您应该将该示例传递给Colors类。

class Colors
{
    public void themecolor(MainForm mainForm)
    {
        foreach (Control c in mainForm.Controls)
        {
            if (c is Button)
            {
                c.BackColor = Color.Red;
                c.ForeColor = Color.White;
            }
            else
            {
                c.BackColor = Color.Green;
                c.ForeColor = Color.Orange;
            }
        }
    }
}

然后从MainForm中,使用this关键字将其自身传递给函数:

Colors cr = new Colors();
cr.themecolor(this);

相关问题