カレンダー付箋ボード

カレンダーと付箋ボードのWindowsアプリ完成!

詳細はこちら

【C#】カラーダイヤログの設定。背景色や文字の色の設定を作る。

もう少しで完成といいつつ何か月経過しているんだろう?さぼっているわけではなく、毎日コツコツやってます!

カラーダイヤログ

カラーダイヤログとは色を変更するときのパレットです。

こういうやつですね。
これを設定していきます。

背景色と文字色でこのパレットを使って色を変更できるようにします。

設定

            using (ColorDialog colorDialog = new())
            {
                // カラーダイアログの初期色を設定
             }   
                CellbackcolortextBox.BackColor = cellbackColor;

こんな感じ。
CellbackcolortextBox.BackColor はカラーパレットを呼びだすボタン
の横に色見本のテキボがあるのでそこに色をセットしています。

カラーダイヤログの表示や使い方は簡単でした。

その他の色

カラーダイヤログを開く。
その他の色の追加で自分好みの色を設定する。
OKで反映させる。

次、またカラーダイヤログを開く。
すると・・・

作成して追加したはずのその他の色がない!
どうやらカラーダイヤログは閉じるとリセットがかかるらしい。
これじゃー1回、1回作成するしかないじゃん!

解決方法は
その他の色を追加したらUSER情報として保存。
次パレットを開くときにその情報を付加して開く。

        //カラーダイヤログの保存
        public static void SaveCustomColors(ColorDialog colorDialog)
        {
            StringCollection colorsToSave = new StringCollection();
            if (colorDialog.CustomColors != null)
            {
                int startIndex = Math.Max(0, colorDialog.CustomColors.Length - 16);
                for (int i = startIndex; i < colorDialog.CustomColors.Length; i++)
                {
                    colorsToSave.Add(colorDialog.CustomColors[i].ToString());
                }
                Settings.Default.SavedCustomColors = colorsToSave;
                Settings.Default.Save();
            }

最大で16色までなので、16まで保存したら古いものは削除します。
(コードは保存部分)

読み込みはもし保存データがなければ基本色のみ表示されるようにします。

これで解決!

まとめ

もう少しで完成なんだけどなぁ~~(何回目だ?)

ちなみにこのその他の色に追加した色の保存方法をジェミニに質問したところ
「そのような方法はありません。やりたいならオリジナルのカラーダイヤログ
を作るしかないです」
と回答された。
(そうなの!?、なんか方法ありそうだけどなぁ~)
コパイロットに聞いてみると、この方法を教えてくれた!!

コパイロットのほうが得意分野なのかなぁ?
少し前のUPDATEでコパイロットが非常に使いにくくなったから
ジェミニばっかり使ってます。

なのでジェミニに「この方法でできるってよ!」って教えました。