私が取り組んでいるこの小さなプログラムの目的は、radiobutton1がチェックされている間に赤い円を描き、radiobutton2がチェックされている間は黒い円を描くことです。2色の円を一緒に保つ方法
以下は私のコードです。このコードの問題は、radiobutton1がチェックされているときに赤い円を描いていますが、radiobutton2をクリックするとすべての赤い円が黒くなります。次にラジオボタン1をもう一度チェックすると、すべての点が再び赤色に変わります。
どのようにしてパネルに両方の色の円を維持できますか?
List<Point> points = new List<Point>();
Graphics g;
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
points.Add(e.Location);
panel1.Invalidate();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
int count = 0;
if (radioButton1.Checked)
{
g = e.Graphics;
while (count < points.Count())
{
g.FillEllipse(Brushes.Red, points[count].X, points[count].Y, 10, 10);
count++;
}
}
else if (radioButton2.Checked)
{
g = e.Graphics;
while (count < points.Count())
{
g.FillEllipse(Brushes.Black, points[count].X, points[count].Y, 10, 10);
count++;
}
}
}
ありがとうございました。 – perryfanfan
こんにちは、@ adv12、私は、赤い円を囲む背景色を持つことができますか?バックグラウンドもサークルなので、赤い円はバックグラウンドサークルの内側にありますが、これにどのようにアプローチすればよいですか? – perryfanfan
もちろん、2つの塗りつぶされた円を描くだけです。最初は黒いもの、次に小さな赤いものを描きます。バックグラウンドサークルをどれくらいの幅のピクセルで広げるかを決定し、それに応じてフォアグラウンドサークルをオフセット/サイズ調整する必要があります。 – adv12