| 返信ありがとうございます。
返事遅れてしまって申し訳ありません。
> 画像1〜6 を管理しているのが、Form1 なのか Form2 なのか、
> あるいはそれ以外(たとえば内部リソースなど)なのかにもよりますね。
内部リソースです。
> やり方は何通りか思いつきますが、とりあえず 3 パターンほど書いてみると:
何通りかあるんですね…どれがいいのでしょう?
どれもちんぷんかんぷんです。
うーんやっぱり私には難しいのかなあ。
ネット検索を駆使して背景カラー(動いてるけど自信無い)だけは出来たんですが、何かヒントになるワード等教えてくださると幸いです。
フォーム1
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
//バックカラーを取得
public Color BackColorCode { get => BackColor; set => BackColor = value; }
public Form1()
{
InitializeComponent();
}
private void To_form2_Click(object sender, EventArgs e)
{
using (var Form2 = new Form2(this))
{
Form2.ShowDialog();
}
}
//private void ????
//{
// pictureBox1.Image = Properties.Resources.Default_Symbol.png
// pictureBox1.Image = Properties.Resources.Sun_Symbol.png
// pictureBox1.Image = Properties.Resources.Water_Symbol.png
// pictureBox1.Image = Properties.Resources.Fire_Symbol.png
// pictureBox1.Image = Properties.Resources.Forest_Symbol.png
// pictureBox1.Image = Properties.Resources.Skull_Symbol.png
//}
}
}
フォーム2
namespace WindowsFormsApp3
{
public partial class Form2 : Form
{
//Form1インスタンス格納用
public Form1 Form1Instance;
private int BackColorCode;
public Form2(Form1 Form1Instance)
{
InitializeComponent();
//Form1のインスタンスを取得
this.Form1Instance = Form1Instance;
//Form1のバックカラーをForm2のカラーボックスへ設定
BackColorBox.BackColor = this.Form1Instance.BackColorCode;
}
private void BackColor_Click(object sender, EventArgs e)
{
// 選択してる色をダイアログ内で選択状態
colorDialog1.Color = BackColorBox.BackColor;
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
BackColorCode = colorDialog1.Color.ToArgb();
BackColorBox.BackColor = colorDialog1.Color;
}
}
private void Close_Click(object sender, EventArgs e)
{
//Form2のカラーボックスの色をForm1へ設定
Form1Instance.BackColorCode = BackColorBox.BackColor;
Close();
}
}
} |