none
テキストファイルから読み込んだ値でコントロールの色を設定する方法について RRS feed

  • 質問

  • いつもお世話になっています。

    テキストファイルからのコントロールカラー設定についてご教授よろしくお願いいたします。
    ラベルを配列で定義し、その配列に次の設定を行っています。
    StateBoxArray[i].Text = "設定中";
    StateBoxArray[i].Enabled = true;
    StateBoxArray[i].ForeColor = Color.Red;

    次にこの配列の内容をテキストファイルに書きだしています。
    書き出したテキストファイルの内容は次のようになっています。

    設定中,True,Color [Red]

    次に、この書き出したテキストファイルの内容を元のコントロールの設定に反映させたいのですが、
    テキストファイルを配列(splittedResult[])に読み込んだあと、
    TextとEnavledについては、下記のようにして反映させることができるのですが、

    StateBoxArray[i].Text = splittedResult[7];
    StateBoxArray[i].Enabled = System.Convert.ToBoolean(splittedResult[8].ToLower());

    ForeColorについての反映方法の記述が分かりません。
    alarmStateBoxArray[i].ForeColor = //ここの部分の記述方法//

    ここの部分の記述方法についてお教え頂きたくよろしくお願いいたします。

    2011年7月2日 8:44

回答

すべての返信

  • ForeColorはKnownColor限定ですか?
    それとも任意のARGBですか?

    KnownColor限定ならColor.ToStringの代わりにColor.Name Propertyで保存し、
    Color.FromNameで復元できます。

    任意の場合、Color.ToStringではなく、ARGBやNameなど必要な情報を直接保存してください。
    復元はColor.FromArgb等で復元できます。

    ちなみに、C#にはSerializeの仕組みがあります。
    以下を参考にしてその仕組みを利用してみるのも良いですね。

    [ColorとXmlSerializer]
      http://social.msdn.microsoft.com/Forums/ja-JP/csharpexpressja/thread/de34aa14-ea7b-4190-88a9-6cba0c7680ef

    • 回答としてマーク hanahana87 2011年7月2日 10:40
    2011年7月2日 9:10
  • Kozz様

    ありがとうございます。

    Color.FromArgbをヒントに以下のようにすっきりとできました。

    テキストへの書き出し

    sw.Write(StateBoxArray[i].ForeColor.ToArgb() + ",");

    テキストの内容

    設定中,True,-65536

    再設定方法

    StateBoxArray[i].ForeColor = Color.FromArgb(int.Parse(splittedResult[9]));

    今後ともよろしくお願いします。

    2011年7月2日 10:40