0

ピクチャボックスを使用してフォームにグリッドを描画する簡単なプログラムに取り組んでいます。

ただし、プログラムが起動すると、ピクチャボックスがあるはずの透明なボックスが残ります。

以下を参照してください。

フォームの透明ボックス

ペイントイベントにある唯一のコードは次のとおりです。

Private Sub pb_key_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pb_key.Paint
    pb_key.Image = keyBMP
End Sub

keyBMP は単純に、その空の透明な穴にあることを意味する白い四角形です。

ありがとう

注:フォームロードハンドラーで Me.Refresh() を実行しようとしましたが、残念ながらホワイトボックスはありません

4

1 に答える 1

0

私の答えはコメントによって私に与えられました:

ペイント イベントで Image プロパティを設定しないでください。これにより、ペイント イベントが再度発生し、イメージ プロパティが設定され、ペイント イベントが何度も何度も発生するためです。スタック オーバーフローの例外が発生していないことに驚きました。一般に、Paint イベントでは、コントロールをリフレッシュするようなことは何もしないでください。ペイント イベントの外でそのプロパティを設定し、pb_key.Refresh() を呼び出します – @ChrisDunaway

于 2013-09-11T04:47:44.123 に答える