Windows窗体 - 从不同的窗体调用相同的函数

时间:2012-08-27 14:33:40

标签: c# winforms

我在c#中的windows表单有点问题。 让我们保持简单:我有一个设置默认背景颜色和前景色的方法。我有多种形式,我想从中调用它,我想只有一种方法(保留添加默认背景图像等的可能性......)。我该怎么办?

这是基本代码:

public void LoadGraphics() {
  this.BackColor = Graphics.GraphicsSettings.Default.BackgroundColor;
  this.ForeColor = Graphics.GraphicsSettings.Default.ForegroundColor;
  this.BackgroundImage = new Bitmap(Graphics.GraphicsResources.bg_small);
}

2 个答案:

答案 0 :(得分:6)

创建一个实现该方法的父类,并从该父类派生您的Forms:

class Foo : Form {
    void LoadGraphics() {
        this.BackColor = Graphics.GraphicsSettings.Default.BackgroundColor;
        this.ForeColor = Graphics.GraphicsSettings.Default.ForegroundColor;
        this.BackgroundImage = new Bitmap(Graphics.GraphicsResources.bg_small);
    }
}

class YourForm : Foo {
    void someFunction() {
        LoadGraphics();
    }
}

答案 1 :(得分:1)

您可以创建一个静态类,其中包含要在表单之间共享的代码:

static class Utils
{
    public static void ChangeColor(Form form, Color color)
    {
        form.BackColor = color;
    }
}

然后你可以从任何其他形式调用这个函数:

Utils.ChangeColor(this, Color.Red);