Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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/5/date/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#_Image_Winforms_Controls_Transparency - Fatal编程技术网

C# 图片盒吸收形式';背景色

C# 图片盒吸收形式';背景色,c#,image,winforms,controls,transparency,C#,Image,Winforms,Controls,Transparency,我正在创建一个国际象棋游戏,但我有一个问题,因为你可以看到棋子吸收了窗体的背景。棋盘是在运行时创建的。它只是一堆Picturebox,带有已编辑的BackColor属性。这些作品也是Picturebox如果它们自己的图像是.png格式并且有一个透明的背景,那么它们的Picturebox也有一个透明的背景色,我如何才能去除这种颜色吸收?表单也是双缓冲的。我已经尝试了这里推荐的各种方法,比如实现我自己的picturebox和覆盖背景绘制事件,但是这不会改变任何东西。。pictureboxs父控件是表

我正在创建一个国际象棋游戏,但我有一个问题,因为你可以看到棋子吸收了窗体的背景。棋盘是在运行时创建的。它只是一堆
Picturebox
,带有已编辑的
BackColor
属性。这些作品也是
Picturebox
如果它们自己的图像是.png格式并且有一个透明的背景,那么它们的
Picturebox
也有一个透明的
背景色
,我如何才能去除这种颜色吸收?表单也是双缓冲的。我已经尝试了这里推荐的各种方法,比如实现我自己的picturebox和覆盖背景绘制事件,但是这不会改变任何东西。。pictureboxs父控件是表单本身。

当然,如果这些字段是单独的框,则这些片段不应具有透明的背景颜色,尤其是当您想将它们移动到字段之间的边界上时,这是一个坏主意。。更好的方法是:在一个普通的板控件上绘制这些字段,并将这些部分嵌套在板中!因为对于重叠控件来说,这是不合适的,所以这几乎是唯一的方法。除非你想在每一步都画背景,否则如果它们在两个字段之间会发生什么?它们是通过拖动移动的,因此它们不能放在两个字段之间,但它们可以在拖动它们时在那里停留几秒钟。请参阅我的最新评论。恐怕我不确定什么是通用板控制。你是说一个大面板,但所有的图片都在里面吗?是的。一个大控件,可能是一个图片盒。在绘制事件中绘制32个正方形或选择一个漂亮的板图像。然后将每一块嵌套在其中:
piece01.Parent=yourBoard。。。请注意,至少对于PictureBox,您需要在代码中执行此操作,而不是在设计器中!如果选择面板,请使用双缓冲子类。(表单的双缓冲区对任何其他控件都没有帮助。)当然,如果这些字段是单独的框,则片段不应具有透明的背景颜色,尤其是当您想将其移动到字段之间的边界上时,这是一个坏主意。。更好的方法是:在一个普通的板控件上绘制这些字段,并将这些部分嵌套在板中!因为对于重叠控件来说,这是不合适的,所以这几乎是唯一的方法。除非你想在每一步都画背景,否则如果它们在两个字段之间会发生什么?它们是通过拖动移动的,因此它们不能放在两个字段之间,但它们可以在拖动它们时在那里停留几秒钟。请参阅我的最新评论。恐怕我不确定什么是通用板控制。你是说一个大面板,但所有的图片都在里面吗?是的。一个大控件,可能是一个图片盒。在绘制事件中绘制32个正方形或选择一个漂亮的板图像。然后将每一块嵌套在其中:
piece01.Parent=yourBoard。。。请注意,至少对于PictureBox,您需要在代码中执行此操作,而不是在设计器中!如果选择面板,请使用双缓冲子类。(表单的双缓冲区将不会帮助任何其他控件。)