砲弾の軌跡を示す C# アプリを作成しています。しかし、最小化すると、ピクチャボックスに描いた軌跡が、元に戻すと消えてしまいます。これを止める簡単な方法はありますか?
5457 次
4 に答える
2
マウスイベントであなたの絵を賭けます。onpaint イベントを使用すると、準備完了です。
編集:
onpaint() イベントを使用した適切な描画チュートリアルを次に示します。
http://www.geekpedia.com/tutorial50_Drawing-with-Csharp.html
于 2012-06-05T13:42:16.153 に答える
0
この質問はこれと非常によく似ています
他の人がすでに述べているように、問題はグラフィックオブジェクトに描画するときであり、何も保持されません。これは永続的なグラフィックスと呼ばれます。この動作が必要な場合もありますが、多くの場合、必要ありません。
ビットマップに描画してから、ビットマップをpicturebox.Imageにコピーする必要があります。他の回答に記載されている他のオプションは、OnPaint メソッドで描画ルーチンを実行することです。
上記の私の答えを読んでください。タイトルは誤解を招きます。永続性を得るにはファイルに保存する必要があると彼は考えていましたが、そうではないことを示しました。
編集上記のリンクからの重要なコードは次のとおりです
Bitmap buffer;
public Form1()
{
InitializeComponent();
panel1.BorderStyle = BorderStyle.FixedSingle;
buffer = new Bitmap(panel1.Width,panel1.Height);
//Make sure you resize your buffer whenever the panel1 resizes.
}
private void button1_Click(object sender, EventArgs e)
{
using (Graphics g = Graphics.FromImage(buffer))
{
g.DrawRectangle(Pens.Red, 100, 100,100,100);
}
panel1.BackgroundImage = buffer;
}
于 2012-06-05T15:57:55.317 に答える
0
ウィンドウが復元されたら、フォームを再描画する必要があります。ペイント イベントの一部として描画がない場合、描画は再描画されません。
于 2012-06-05T13:50:24.683 に答える