DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コントロールのBackColorの比較

環境/言語:[VB.NET2003]
分類:[.NET]

最近VB.NETを始めたばかりで、はじめて質問します。
よろしくお願いいたします。

フォーム上コントロール(テキストボックス等)のBackColorプロパティ
で分岐するIf条件文を作成したいのですが、エラーになってしまいます。

(例)あらかじめ背景色を設定しておき、ある背景色のものだけ処理対象としたい。

Me.txt1.BackColor = Color.Bisque    <-これはエラーにならない
Me.txt2.BackColor = Color.White    <-これはエラーにならない

For Each Ctl In Me.Controls
If Ctl.BackColor = Color.Bisque Then  <-エラーになる

End If
Next

値の代入はColor構造体で設定できますが、
値の取得(比較)はどうしたらよいのでしょうか?
色々自分なりにやってみたのですがどうしても分からず質問いたしました。

よろしくお願いします。
2005/03/04(Fri) 14:17:56 編集(投稿者)

こんにちは、じゃんぬねっと です。

■No9027に返信(ゆきねこさんの記事)
> 値の代入はColor構造体で設定できますが、
> 値の取得(比較)はどうしたらよいのでしょうか?

参考リンク:
ttp://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx01/index.cgi?m=look&bnum=1058

// 直リンク不可の CGI のようです。
// アドレス バーに貼り付けて「h」を付加して移動。
じゃんぬねっと様

レスありがとうございました、
ありがとうございます、解決しました!

BackColorプロパティではなく、
BackColorのNameプロパティで比較するのですね。

VB6.0->VB.NETへの道はあらゆる点で違うので本当に険しいです・・・。
これからも相談させていただくかもしれませんが、
よろしくお願いします。
解決済み!
2005/02/10(Thu) 11:53:46 編集(投稿者)

#オオボケかましてた箇所を訂正(///)+言語について追記

 既に解決済みとなっているので蛇足になるのですが‥‥(汗)

 一応( VB.NET と C++.NET では) Color 構造体の等値演算子は Color.op_Equality として定義されています。しかし、 Equals メソッドを使用したほうが解り易いでしょうか。
 また−今回は必要なさそうですが−用途次第では ARGB 値( ToArgb メソッド)を比較したほうが適切な場合もあるでしょう。
#例えば Color.Black と Color.FromArgb(255,0,0,0) の ARGB 値は同じですが、構造体の値としては( Name プロパティも)異なります。

DOBON.NET | プログラミング道 | プログラミング掲示板