3

VisualBasic.Net の場合 ピクチャ ボックスをアクティブにして何かを描画すると、描画後すぐに空白になります。再描画すると問題なく動作しますが、最初に描画するときはほとんど常に台無しになります。これはいくつかの異なるプログラムで発生しており、ヘルプ ファイルは役に立ちません。

4

6 に答える 6

1

通常、画像ボックスまたは別のコントロールに何かを描画している場合は、OnPaint イベントを引き継ぐ必要があり、このイベントで描画したものを永続化する責任があります。

于 2013-03-11T13:42:43.247 に答える
1

DoubleBufferedプロパティを設定してみる

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.doublebuffered.aspx

そうでない場合は、さらに情報を提供してください。

于 2008-12-05T20:18:16.113 に答える
0

DoubleBufferedを使用できない場合は、2番目の画像ボックスを非表示にすることができます。その中で描画を行い、完了したら、VISIBLEに描画し直します。このように、描画のプロセスは非表示のもので行われ、白/ちらつきは表示されません。

于 2008-12-06T15:28:50.190 に答える
0

標準のPictureBoxコンポーネントを使用していると思います。ペイントハンドラーで描画しますか?そうでない場合、PictureBoxは、次に自分自身を再描画するように求められたときに、ペイントしたものを消去します(背景の消去など)。

于 2008-12-05T21:14:57.793 に答える
0

はい、私は標準の絵箱を使用していると思います。

Paint-Handlerとは、[Control].PaintEventHandlerを意味すると思います。いいえ、描画にイベントハンドラーを使用していません...グラフの描画はそれ自体がイベントではありませんが、ボタンクリックイベントに対するはるかに大きな応答の一部です。

描画コードを別の特定のハンドラーの一部にすることで問題を解決できると言っている場合は、グラフを再描画するたびに内部イベントを発生させることができると思います。しかし、私はむしろ、PBが指示されることなく自分自身を再描画する原因を理解したいと思います。

于 2008-12-06T15:18:18.433 に答える
0

アンドリューに感謝しますが、助けにはなりません。DoubleBuffered プロパティを提供しない .Net Framework 1.1 を使用しています...これは 2.0 で新しく追加されました。

提供する追加情報がわからない..コードの長さは 300 行です。ボタンをクリックすると、コードはフォームを展開し、2 つのピクチャ ボックスを重ねて表示し (背面はグラフ ラベル用)、グラフィック ブラシとペンを使用して前面にグラフを描画します。いくつかのデータベース アクティビティと計算がバックグラウンドで同時に進行しています。

于 2008-12-05T20:47:46.943 に答える