2

C#のWindowsフォームに少し問題があります。簡単にしましょう。デフォルトの背景色と前景色を設定するメソッドがあります。呼び出したいフォームが複数あり、メソッドを1つだけにしたい(デフォルトの背景画像を追加する可能性を維持するなど)。どうすればいいですか?

これは基本的なコードです:

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

2 に答える 2

6

メソッドを実装する親クラスを作成し、その親クラスからフォームを派生させます。

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();
    }
}
于 2012-08-27T14:42:46.207 に答える
1

フォーム間で共有されるコードを含む静的クラスを作成できます。

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

次に、他の形式からこの関数を呼び出すことができます。

Utils.ChangeColor(this, Color.Red);
于 2012-08-27T14:48:45.843 に答える