私は個人用のプロジェクト(単純な電話帳)に取り組んでいます。少しカスタマイズするオプションがあります(フォームのアイコン、ボタンの画像、ピクチャボックスの画像などを変更します)。これは次のように機能します。
アプリが起動すると、選択されているテーマがチェックされます。
private void Main_Load(object sender, EventArgs e)
{
Settings f2 = new Settings();
ThemeCheck();
}
...ここで、ThemeCheck() は次のとおりです。
void ThemeCheck()
{
if (Properties.Settings.Default.Theme == "Purple")
{
foreach (var form in Application.OpenForms.Cast<Form>())
{
form.Icon = Properties.Resources.Purple;
}
Main f1 = (Main)Application.OpenForms["Main"];
Settings f2 = (Settings)Application.OpenForms["Settings"];
f1.btn_Exit.Image = Properties.Resources.EXIT_purple;
}
if (Properties.Settings.Default.Theme == "Blue")
{
foreach (var form in Application.OpenForms.Cast<Form>())
{
form.Icon = Properties.Resources.Blue;
}
Main f1 = (Main)Application.OpenForms["Main"];
Settings f2 = (Settings)Application.OpenForms["Settings"];
f1.btn_Exit.Image = Properties.Resources.EXIT_blue;
}
}
...など、各色 (10 種類の異なる色があります) について、ここにコード全体をコピーするには長すぎます。
それにもかかわらず、テーマを正常に変更することができましたが、アプリケーションを再起動すると、ランダムなテーマに切り替わります (最初のテーマであるため、常に青色です)。
どうすればこれを処理できますか?アプリを再起動しても選択したテーマが設定されるようにしてほしい。基本的に紫色のテーマを選択した場合は、再起動後も紫色のままにしたいと考えています。
誰かがそれを見たい場合は、ここにコード全体を2つのtxtファイルに分けてアップロードしました(両方のフォーム-メインのフォーム(Form1)と設定が構成されているフォーム(Form2))。