付箋の表示設定を変更できるようにします。付箋の背景色や文字のフォント、不透明度などを変更できるようにします。
まずはフォントを変更できるようにしましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public partial class Form2 : Form { Font _font = null; private void FontMenuItem_Click(object sender, EventArgs e) { FontDialog dlg = new FontDialog(); dlg.Font = label1.Font; if(dlg.ShowDialog() == DialogResult.OK) { _font = dlg.Font; } } } |
背景色もこれで変更できます。
1 2 3 4 5 6 7 8 9 10 11 |
public partial class Form2 : Form { private void BackColorMenuItem_Click(object sender, EventArgs e) { ColorDialog dlg = new ColorDialog(); if(dlg.ShowDialog() == DialogResult.OK) { this.BackColor = dlg.Color; } } } |
不透明度はこれを設定するためのダイアログを作成します。クラス名はFormOpacityとします。
NumericUpDownコントロールは最大値を100、最小値を1として[OK]がクリックされたらこれをフィールド変数opacityに格納して呼び出し元に渡すことができるようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public partial class FormOpacity : Form { public double opacity = 1.00; public FormOpacity() { InitializeComponent(); buttonOK.DialogResult = DialogResult.OK; buttonCancel.DialogResult = DialogResult.Cancel; numericUpDown1.Minimum = 1; numericUpDown1.Maximum = 100; buttonOK.Click += ButtonOK_Click; } private void FormOpacity_Load(object sender, EventArgs e) { numericUpDown1.Value = (int)(opacity * 100); } private void ButtonOK_Click(object sender, EventArgs e) { int value = (int)numericUpDown1.Value; opacity = (double)value / 100; } } |
Form2のメニュー[付箋の不透明度]を選択したときの処理は以下のとおりです。
上記ダイアログを表示して[OK]がクリックされたら不透明度を設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public partial class Form2 : Form { double opacity = 1.00; private void OpacityMenuItem_Click(object sender, EventArgs e) { FormOpacity form = new FormOpacity(); form.opacity = opacity; if(form.ShowDialog() == DialogResult.OK) { opacity = form.opacity; } } } |
あとは付箋を表示させるときにこれを適用するだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
public partial class Form2 : Form { void FormToFusen() { oldFormWidth = this.Size.Width; oldFormHeight = this.Size.Height; if(oldFusenWidth != 0 && oldFusenHeight != 0) this.Size = new Size(oldFusenWidth, oldFusenHeight); FormBorderStyle = FormBorderStyle.None; textBox1.Visible = false; label1.Visible = true; label1.AutoSize = false; label1.Text = textBox1.Text; menuStrip1.Visible = false; // 追加された部分 if(_font != null) label1.Font = _font; buttonOK.Visible = false; Opacity = opacity; } void FusenToForm() { oldFusenWidth = this.Size.Width; oldFusenHeight = this.Size.Height; Size size = new Size(oldFormWidth, oldFormHeight); this.Size = size; FormBorderStyle = FormBorderStyle.Sizable; textBox1.Visible = true; label1.Visible = false; buttonOK.Visible = true; menuStrip1.Visible = true; // 追加された部分 // フォームの場合は不透明度は100%とする Opacity = 1.0; } } |