- - PR -
プロパティー設定について
1
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-19 16:11
C#で開発中なのですが、プロパティー設定について悩んでいます。
画面のプロパティー設定を、外部ファイル(xml等)を使って行いたいのですが、 うまくいきません。 xmlファイルに設定するとテキスト型になりますよね? それをそのままプロパティーに設定することは出来きません。 Color.Redとかで設定するのは分かっているのですが、 外部ファイルの設定値を使用すれば、プログラムを変更せずに済むかと 思ったのでこの手段を取りたいのです。 皆さんはこんな場合、どういう方法で設定しているのでしょうか? | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 16:52
諸農です。
問題点は「色の設定」ですか? 例えばこんな感じで色をstring型のオブジェクトに文字列形式で格納したり、string型のオブジェクトに格納されている文字列形式の値から色オブジェクトを作ったりすることが出来ます。
_________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 17:05
型変換を行う他はないと思います。
列挙型の名前から値を取得することもできます。(Enumクラスを使う) Colorであれば、Color.FromName("Red")の"Red"をApp.configから取得するようにするとか。 | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 17:17
諸農さん、kanaiさんありがとうございます。
XmlElement elm = (XmlElement)button.FirstChild; aaa=elm.GetAttribute("backcolor"); Color.FromName(aaa); こんな感じで設定できました。 この場合は16進数を使用しての設定は出来ないのですね。 16進で設定したい場合は、どのようにすればいいのでしょうか? | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 18:03
諸農です。
Color.ToArgb()で取得したint値を書式変換(x)で 16進数表現の文字列に変換できますよ。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 18:41
返信ありがとうございます。 Color.ToArgb()を試そうと思ったのですが、Color.と入力しても ToArgbが表示されていません。 それと、ちょっと意味が理解できませんでした。 やりたいことは、 「xmlファイルに設定した16進カラー(#87CEEB)を フォームロード時にボタンのカラーに設定したい」 って感じなんですが。。。 余談ですが、.NETでフォーム(コントロール含む)のプロパティーを設定 するのって、結構面倒なんでしょうか? カラー以外にも、フォントの設定等も行おうと思っていたのですが ヘルプを見ても、思うように設定できません。 プロパティー設定について、分かりやすく解説されている サイトとかをご存知でしたら、教えていただけないでしょうか? | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 20:13
#プロパティ設定というか、データ型の変換で引っかかっているように見受けられますが
Convert.ToInt32()で文字列→整数に変換してから Color.FromArgB()でどうです? [思い出したので追記] すっかり忘れてましたが ColorTranslator.FromHtml()を使えばもっと楽。 _________________ Future Is What We Are! [ メッセージ編集済み 編集者: 117 編集日時 2005-07-19 20:17 ] | ||||||||||||||||||||||||
|
投稿日時: 2005-07-19 20:14
諸農です。
あ、そうなんですか?わかりませんでしたか? ドキュメントは見られましたか? ToArgb()メソッドはインスタンスメソッドですよ。 Colorの後にドットを打ち込んでも出てこないのは当然ですよ。 > それと、ちょっと意味が理解できませんでした。 ドキュメント見ればわかると思うのですが、 To〜があればFrom〜もありそうだと予測できませんか? 何でもかんでも質問する前に、ちょっとだけでも自分なりに ドキュメントの内容を確認してみませんか?
Color構造体の説明には「ARGB 色を表します。」と書いてありますけど、 > (#87CEEB) だと1バイト少ないのかな。
上記コードで使っている変換クラスやメソッドの詳細については、 .NET SDKで提供されているドキュメントを良く読んでいただけますように、 よろしくお願いいたします。
そうなんですか? そんなことはないでしょう(^^;
どのように出来ないのですか? Colorオブジェクトと同様で、Fontオブジェクトを作る必要がありますよ。
投稿内容から推測すると、書籍で基本から順に学ばれた方が良いような気もしますが、とりあえずは基本なんかよりも、すぐに動かすことの出来る答えが欲しいのですよね? そうであるなら.NETプログラミングにピンポイントで役立つテクニックとヒント集などが良いのではないでしょうか。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
1