Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在黑色圆圈中画红色圆圈?C#_C#_Paint - Fatal编程技术网

如何在黑色圆圈中画红色圆圈?C#

如何在黑色圆圈中画红色圆圈?C#,c#,paint,C#,Paint,我在panel1上画点进行点和框游戏。我想在它们周围画黑色的圆圈和红色的圆圈,但由于某些原因,我的红色圆圈的一半画得很好,另一半移到了右边。我尝试了不同的偏移,但若面板的右侧绘制得很好,那个么左侧绘制得不好。 ; private void panel 1_Paint(对象发送器,PaintEventArgs e) { 图形=e.图形; 对于(int i=0;i您可以在第一个for循环中同时绘制它们,而忽略第二个for循环(删除它): 使用相同的计算来找到绘图起点,然后,x和y位置都减

我在
panel1
上画点进行点和框游戏。我想在它们周围画黑色的圆圈和红色的圆圈,但由于某些原因,我的红色圆圈的一半画得很好,另一半移到了右边。我尝试了不同的偏移,但若面板的右侧绘制得很好,那个么左侧绘制得不好。 ;

private void panel 1_Paint(对象发送器,PaintEventArgs e)
{
图形=e.图形;

对于(int i=0;i您可以在第一个for循环中同时绘制它们,而忽略第二个for循环(删除它):

使用相同的计算来找到绘图起点,然后,x和y位置都减少1,宽度和高度增加2

希望这有帮助

graphics.FillEllipse(new SolidBrush(Color.Black), i * ((panel1.Width - 10) / numberOfColumns), j * ((panel1.Height - 10) / numberOfRows), dotWidth, dotHeight);
graphics.DrawEllipse(new Pen(Color.Red, 1f), i * ((panel1.Width-10) / numberOfColumns)-1, j * ((panel1.Height - 10) / numberOfRows)-1, dotWidth+2, dotHeight+2);

您可以在第一个for循环中同时绘制它们,而忽略第二个for循环(删除它):

使用相同的计算来找到绘图起点,然后,x和y位置都减少1,宽度和高度增加2

希望这有帮助

graphics.FillEllipse(new SolidBrush(Color.Black), i * ((panel1.Width - 10) / numberOfColumns), j * ((panel1.Height - 10) / numberOfRows), dotWidth, dotHeight);
graphics.DrawEllipse(new Pen(Color.Red, 1f), i * ((panel1.Width-10) / numberOfColumns)-1, j * ((panel1.Height - 10) / numberOfRows)-1, dotWidth+2, dotHeight+2);

您可能需要编写一个新的帮助器方法,在特定的中心位置绘制一个带有红色边框的黑色圆圈。然后,您可以从
for
循环调用此方法。您可能需要编写一个新的帮助器方法,在特定的中心位置绘制一个带有红色边框的黑色圆圈。然后,您可以从调用此方法ode>用于循环。