あなたは、あなたがあなたの描画パネルの個々の「ビューポート」を作成することができますしたい場合。
このため、Paint
イベントはGraphics
オブジェクトを設定する必要があり、それらの 'ポート'に描画できます。ここで
は最小限の例です..:私は常に(0,0)
を調整するために描くことができますどのように
private void drawPanel1_Paint(object sender, PaintEventArgs e)
{
foreach (var v in ViewPorts)
{
int i = ViewPorts.IndexOf(v);
e.Graphics.ResetClip();
e.Graphics.ResetTransform();
e.Graphics.SetClip(v);
e.Graphics.TranslateTransform(v.X, v.Y);
e.Graphics.Clear(colors[i]);
e.Graphics.DrawString(DateTime.Now.Millisecond + "' - " +i,
Font, Brushes.Black, 0,0);
}
}
注:
Paint
イベントは、3つの異なるビューポートに現在のMSを描きます!ビューポートを変更
colors.Add(Color.LightCoral);
colors.Add(Color.LightCyan);
colors.Add(Color.LightGreen);
ViewPorts.Add(new Rectangle( 0, 0, 200, 250));
ViewPorts.Add(new Rectangle(100, 100, 100, 50));
ViewPorts.Add(new Rectangle(210, 200, 100, 50));
Timer t = new Timer();
t.Interval = 250;
t.Tick += (ss, ee) => { drawPanel1.Invalidate(); };
t.Start();
あなたはTimer
を使用しますが、で描画しません。私はリストやアニメーションタイマーを設定する方法
ここ List<Rectangle> ViewPorts = new List<Rectangle>();
List<Color> colors = new List<Color>();
は次のとおりです。
は、それはいくつかの変数を使用しています具体的にデータとInvalidate
をPanel
に変更すると、データが変更されるたびに ..
私はちょうどForeColor
、Fonts
その後、いくつかのように、より良いViewPort
クラスの一部である必要があり、BackColor
を追加しました。そのようなクラスはまた、あなたがしたくない場合は/あなたの出力はに必要
..あなたはe.Graphics
パラメータを渡して、パネルのPaint
イベントから呼び出しますDraw
方法を保持することができただけでなくかもしれない、を持続ツールチップの場合は、をスキップPaint
イベントにすることができます。この場合、私はビューポートを渡し、ターゲットパネルへの参照を持ち、CreateGraphics
とほぼ同じコードを使用します。
私は適切な理解を求めています:パネル上にマウスを移動&ホバリングしています。そして、あなたはポップアップ(ラベル)がマウスの動きに沿って動くのを見たいと思っています。マウスのコーズ、そうですか? – Tatranskymedved
正確には、私はこのパネル上に図形を描くことができるので、それらの図形の座標を追跡します。そして、後で、マウスを作成した形にマウスを置くとポップアップメッセージが表示されます。 – mymek
あなたの質問に答えてください。はい、可能です。質問の範囲を狭めてください。 – TyCobb