• ベストアンサー

VB.netでRGB関数を使うには

こんにちは。 表題の通り、VB.netでRGB関数を使って背景色を変えたいんですが、以下のように入力してもエラーになってしまいます。VB6.0ではこれで通用すると書いてあり大丈夫だと思ったんですが、どこをどう直せばいいんでしょうか? Dim red,green,blue As Integer (red,green,blueの値は、他のコントロールから取得) PictureBox1.backcolor = RGB(red,green,blue) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

VB.NETは未経験ですが、 System.Drawing.ColorTranslator.FromOleで変換すればよいかも

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/vbcon/html/vberrColorChangesInVisualBasicNET.asp
hibachi
質問者

お礼

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

hibachi
質問者

補足

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

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

環境がないので全て推測です。正確なことが言えなくてすいません。 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/script56/vsfctrgb.htm VB.NET環境のある人にバトンタッチデス・・・

hibachi
質問者

お礼

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

すると、全ての回答が全文表示されます。
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

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

hibachi
質問者

補足

言葉足らずですいません。 例えば、formにピクチャーボックスとボタンを貼り付け、以下の構文をVB6.0とVB.netの両方で実行してみてください。 PictureBox1.Backcolor = RGB(255,0,0) VB6.0では問題なく実行できますが、VB.netでは、「 型"integer"の値を"system.drawing.color"に変換できません 」とエラーメッセージがでるんです。VB.netでのみ起こる原因がわからず質問させていただきました。 誰かわかる方、お教えてください。

すると、全ての回答が全文表示されます。

関連するQ&A