0

我一直在环顾四周,但从未找到真正直接的答案。目前,我正在努力

    public frmGameWindow()
    {
        InitializeComponent();
        SetStyle(ControlStyles.UserPaint, true);
        SetStyle(ControlStyles.SupportsTransparentBackColor, true);

    }
    private void frmGameWindow_Load(object sender, EventArgs e)
    {
        imgSrc.BackColor = Color.Transparent;
        lblName.BackColor = Color.Transparent;
    }

然而,它仍然在父级的背景颜色之上提供控件(在这种情况下,是表单本身)。我正在尝试使用 Visual Studio 2010 标准安装中内置的严格功能编写一个非常基本的游戏引擎来帮助我学习 C#。

4

1 回答 1

0

覆盖控件并创建您自己的控件,您可以在其中覆盖方法。以下是您可以尝试的一些覆盖:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT

        return cp;
    }
} 
protected override void OnPaintBackground(PaintEventArgs pevent)
{
    // Don't paint background
}
于 2012-11-06T01:20:02.020 回答