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

C#如何在另一个类中使用控件的样式?

C#如何在另一个类中使用控件的样式?,c#,winforms,C#,Winforms,这是我的风格代码。我想把它用在我的面板上 我怎样才能把它应用到其他课程中呢 public class ExtendedPanel : Panel { private const int WS_EX_TRANSPARENT = 0x20; public ExtendedPanel() { SetStyle(ControlStyles.Opaque, true); } protected

这是我的风格代码。我想把它用在我的面板上 我怎样才能把它应用到其他课程中呢

public class ExtendedPanel : Panel
    {
        private const int WS_EX_TRANSPARENT = 0x20;
        public ExtendedPanel()
        {
            SetStyle(ControlStyles.Opaque, true);
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            using (var brush = new SolidBrush(Color.FromArgb(this.opacity * 255 / 100, this.BackColor)))
            {
                e.Graphics.FillRectangle(brush, this.ClientRectangle);
            }
            base.OnPaint(e);
        }
    }
我将应用此风格的主要课程:

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }


    private void Form1_Load(object sender, EventArgs e)
    {
        ExtendedPanel ds = new ExtendedPanel();
        panel3= ds;



    }
}
有没有快速的解决办法


谢谢。

你到底想干什么?不清楚。因此,您有一个
扩展面板
类的实例:
ds
。你希望用它做什么?您需要我们帮助您做什么?使用设计器删除panel3,然后添加新面板。我想将类扩展面板应用于我的panel3。我该怎么做?我的意思是扩展面板是一种风格。但是我想发生的事情是在我的面板3的主类中应用它。你似乎不理解控件继承是如何工作的。永远不要使用你发布的代码,它会在应用程序的生命周期中泄漏现有的panel3对象,因为它从未被处理过。相反,确保您的项目已构建。打开窗体的设计器。删除现有面板。然后从工具箱顶部拖放新面板。