2016-04-14 29 views
-1

私は描画可能なピクチャボックスを持つWinformアプリケーションを持っています。そのために、私はpicturebox.Paintイベントのためのメソッドを生成しました。しかし、ピクチャボックスにペイントイベントを追加して以来、私のwinformは開始時に正しく表示されません。アプリケーションを起動すると、部分的にしかWinforms:ペイントイベントを追加するとフォームが異常になる(C#)

enter image description here

フォームをロードし、私は何のために、それは

enter image description here

それだけのレンダリングを完了するために得るために、私のマウスでアプリケーションウィンドウをドラッグする必要がありますそれはフォーム上の何かを変更する、私はウィンドウをドラッグするまで変更は表示されません。それを取り除くことで問題が解決されるので、私はペイントイベントがトリガしていることを知っています。空のペイントイベントメソッドを使用すると、バグも停止します。このような簡単な塗装方法でさえも、バグが発生します。どんな助けでも大歓迎です!

+2

ピクチャボックスをnullに設定すると、ピクチャイベントが再び発生し、ピクチャボックスがnullになり、paintイベントが再び発生する可能性があります。ペイントイベントが発生する可能性があります。そうしないと、無限再帰が発生する可能性があります。 –

+0

これは明らかにPaintメソッドのvalid__コンテンツではありません!はい、シンプルですが、PaintイベントでInvalidate()もそうです。厳密には、e.Graphicsオブジェクトで描画するグラフィックスです。 – TaW

+0

問題を修正したと思われる無限再帰の可能性を避けるためにコードを変更しました。私はまだ別の問題が1つあります。これは、http://stackoverflow.com/questions/36628305/scaling-picturebox-does-not-change-image-at-allに関する質問を開いたことです。 –

答えて

0

ピクチャボックスのプロパティを変更しないように、私のペイントイベントメソッドを変更しました。また、ブール値フラグを追加して、フォームを再描画する必要がなくなるたびに描画するようにしました。

 private void pictureBox1_Paint(object sender, PaintEventArgs e) 
     { 
      if (isDraw) 
      { 
       //Do Stuff 
      } 
     } 
関連する問題