プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
表題の通り、VB.netでRGB関数を使って背景色を変えたいんですが、以下のように入力してもエラーになってしまいます。VB6.0ではこれで通用すると書いてあり大丈夫だと思ったんですが、どこをどう直せばいいんでしょうか?

Dim red,green,blue As Integer

(red,green,blueの値は、他のコントロールから取得)

PictureBox1.backcolor = RGB(red,green,blue)

よろしくお願いします。

A 回答 (3件)

VB.NETは未経験ですが、


System.Drawing.ColorTranslator.FromOleで変換すればよいかも

参考URL:http://www.microsoft.com/japan/msdn/library/ja/v …

この回答への補足

すいません。おっしゃる通りSystem.Drawing.ColorTranslator.FromOle(RGB(red,geen,blue))で変換できました。こういう書式になるとは気がつきませんでした。お騒がせしました。

補足日時:2002/10/28 12:00
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
System.Drawing.ColorTranslator.FromOleでは、Oleカラーを指定するそうですが、RGBのように3原色を指定するのではなく、変数は1つしかとらないようです。誰かOleカラーについて詳しい方いないでしょうか?

お礼日時:2002/10/19 19:50

環境がないので全て推測です。

正確なことが言えなくてすいません。

MSDNOnlineを見たところ、RGB関数の仕様に変更が見られません。
PictureBox1.Backcolor = RGB(255,0,0)
がダメで
PictureBox1.Backcolor = &H0
ができるのなら、完全にRGBのせいですね。
おそらく、ライブラリが破損しているのかも知れませんね。
(推測ですので、再インストールを自信を持ってお勧めできないところが情けないデス)

「型"integer"の値を"system.drawing.color"に変換できません」
て事はIntを変換失敗しているみたいなので、
RGB(255,0,0) → RGB(Cbyte(255),Cbyte(0),Cbyte(0))
でもダメでしょうか?
それがダメなら、オリジナルRGB関数を作ってみてはいかがでしょう。
http://www.microsoft.com/japan/developer/library …

VB.NET環境のある人にバトンタッチデス・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
う~ん、うまくいかないみたいです。
自分でももうちょっと調べてみます。

お礼日時:2002/10/18 17:02

red,green,blueに入っている値が不正なのでは?



「エラーが出たからどうしたらよい?」
ではなくて、どのようなエラーが出ていて、変数にセットされている値を書かないと答えようが無いように思うのは私だけ?

この回答への補足

言葉足らずですいません。
例えば、formにピクチャーボックスとボタンを貼り付け、以下の構文をVB6.0とVB.netの両方で実行してみてください。

PictureBox1.Backcolor = RGB(255,0,0)

VB6.0では問題なく実行できますが、VB.netでは、「 型"integer"の値を"system.drawing.color"に変換できません 」とエラーメッセージがでるんです。VB.netでのみ起こる原因がわからず質問させていただきました。
誰かわかる方、お教えてください。

補足日時:2002/10/18 08:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています