質問者
PictureBoxの表示について

質問
-
VB2013 Express Edition を使用しています。
Picture Boxの表示ですが、VB2008の時はPicture Boxの
Enableを”False”にすると表示色が薄くなりましたが、VB2013
では、”Enable”でも”False”でも変わりなく、通常に表示しています。
どこか設定が違うのではないかと思いますが、プロパティを比較した
かぎり、2008と2013で変わりありません。何が原因なのかお教え下さい。
参考書」、ネットを検索した範囲では原因を見つけられませんでした。
Picture Boxは、どちらもパネルに貼り付けています。パネルのプロパティ
も同じでした。よろしくお願いいたします。
すべての返信
-
こんにちは。
画像が灰色になるという意味でしたでしょうか。
VisualStudio2013Pro(.NET4.5, .NET3.5)とVisualStudio2005Pro(.NET2.0)で確認してみましたが、
どちらもEnable=Falseで画像の色は変わりませんでした。
私は存じませんが
VisualStudioによる違いは考えにくいので何か他の原因でしょうか。
ご参考までに、
非活性時の画像色を変更するにはControlPaint.DrawImageDisabledを使用する方法があります。PictureBox.PaintイベントでEnableを判断して設定します。Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint If Not PictureBox1.Enabled Then ControlPaint.DrawImageDisabled(e.Graphics, PictureBox1.Image, 0, 0, BackColor) End If End Sub
-
表示するImageデータを別に用意する案でも出来ると思いますが、
先に投稿したDrawImageDisabledを使用するほうがおそらく楽だと思いますので
以下を参考にチャレンジしてみてください。http://dobon.net/vb/dotnet/graphics/drawimagedisabled.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/303drawdisable/drawdisable.html
-
VB2008の時は、黒が灰色に、赤がピンクにと彩度が
下がる感じです。
VB2008のアプリケーションで何か制御している可能性があります。
可能であればVB2008で新たにプロジェクトを作成して、テストしてみて下さい。その結果、薄色表示になることが再現できた場合は、そのコード等をここに掲載していただければ、何かわかるかもしれません。★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答の候補に設定 Tak1waMVP, Moderator 2015年3月14日 2:39
-
Tak1waさん
eがなんであるか分からなかったので下記によ試してみました。
Dim e As PaintEventArgs
ControlPaint.DrawImageDisabled( _
e.Graphics, _
Me.PictureBox1.Image, _
0, 0, _
Me.BackColor)デバッグは実行出来ましたが、この行で
”型 'System.NullReferenceException' のハンドルされていない例外が Bridge_Bid.exe で発生しました
追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。”とエラーメッセージが出てデバッグが停止しました。
使い方の誤りを教えて頂けると有難いです。