2017-02-06 9 views
0

私はタブコントロールを含むWindowsフォームプログラムを持っています。問題のタブにはユーザーコントロールがあり、ユーザーコントロールにはピクチャボックスが含まれています。実行時にタブを選択すると、どのイベントが画像ボックスに描画されるのかわかりません。私は見つけることができるすべてのイベントを試してみました。私はそれらを一歩踏み出して、私が望むものを描くことができます。しかし、デバッガから 'Continue'をクリックするとピクチャボックスがクリアされます。Windows Formsプログラムでは、タブコントロールのピクチャボックスにペイントするためにどのようなイベントをキャプチャできますか?

私は、完了したロード後に、私が望むものを描くために、「リフレッシュ」ボタンを入れることになりましたが、何かが欠けていると確信しています。

私には何が欠けていますか?

+0

PictureBoxはControlクラスから派生しているので、[Paint Event](https://msdn.microsoft.com/en-us/library/system.windows.forms.control.paint() v = vs.110).aspx)を使用して図面を作成します。 – Icemanind

+0

ありがとうございます。私はちょうどそれを試みた。私が一歩一歩進んだ場合は描画されますが、「続ける」をクリックするとピクチャボックスがクリアされます。あたかも別の出来事が起こっているかのように。 –

+0

あなたのペイントイベントにコードを投稿できますか? – Icemanind

答えて

1

イベントハンドラに渡されたグラフィックスオブジェクトを使用する必要があります。このように:

public void UserControl_Paint(object sender, PaintEventArgs e) 
{ 
    e.Graphics.Clear(Color.White); 
    e.Graphics.DrawArc(Pens.Blue, 50, 50, 14, 14, 0, 360); 
} 

また、グラフィックオブジェクトを破棄したくなるかもしれません。これをしないでください。作成していないオブジェクトは決して処分しないでください。

関連する問題