C# 怪异的面板/面板/图片盒交互

C# 怪异的面板/面板/图片盒交互,c#,winforms,visual-studio-2013,chess,C#,Winforms,Visual Studio 2013,Chess,我正在visual studio 2013中制作一个windows窗体国际象棋应用程序。众所周知,当一个兵到达最后一级(排)时,它被提升,成为一个更强的人物(一辆车、一位主教、一位骑士或一位女王)。我是通过一个显示在板顶部的面板来选择图形的。我不想使用消息框。以下屏幕截图说明了我遇到的问题: 电路板的结构是(这不是代码,我只是使用语法): PanelPawnConversion包含2个按钮,它最初是不可见的。当一个棋子需要提升时,它变得可见。它的背景色不是透明的,它也是BringToFront

我正在visual studio 2013中制作一个windows窗体国际象棋应用程序。众所周知,当一个兵到达最后一级(排)时,它被提升,成为一个更强的人物(一辆车、一位主教、一位骑士或一位女王)。我是通过一个显示在板顶部的面板来选择图形的。我不想使用消息框。以下屏幕截图说明了我遇到的问题:

电路板的结构是(这不是代码,我只是使用语法):


PanelPawnConversion包含2个按钮,它最初是不可见的。当一个棋子需要提升时,它变得可见。它的背景色不是透明的,它也是BringToFront()'ed。我已经没有办法解决这个问题了。我没有提供代码,因为相关的部分分散在它周围,在我看来,没有比我已经解释的更多。

为什么不使用模式对话框?WinForms中的透明度仅与父容器有关。如果面板是窗体的父对象,则它将仅在窗体背景下显示为透明。如果面板与任何其他控件重叠,则透明度幻觉消失。如果您需要更好的控制,那么您必须切换到WPF,这是一个完全不同的范例。另一个选项是通过修改面板的
Region()
属性来物理剪裁面板,使其仅包含子按钮所在的区域(使用
GraphicsPath
构建
区域
)?董事会的结构如何?64面板还是PBOX?还是32@Idle:据我所知,似乎没有使用透明性。-为什么面板只有两个按钮,而有4个可供选择。@TaW所有内容都嵌套在Board类中,但PanelPawnConversion位于BoardPanel上。共有32个pbox,包含数字图像。它只有两个按钮(女王和骑士),因为在我的版本中,陷入僵局和被将死是一样的,所以宣传不足是没有用的。这是出于性能方面的考虑,该应用程序不是为人类设计的,2个国际象棋引擎将要进行数万亿次的战斗,因此速度至关重要。事实上,也没有将死,当一个国王被俘时,游戏结束。同样的道理。另一方面:我想知道为什么你做一个视觉表现的目的是要比任何人都能看到的速度快得多,更不用说跟随它了。。?
class Board : Panel //Contains Panel BoardPanel
{
    class Figure : PictureBox 
    Panel PanelPawnConversion;
    Panel BoardPanel //All the Figures and PanelPawnConversion are on this panel
                     // black and white squares are drawn there too.
}