Windows应用程序C#.net中动态创建按钮的边框

Windows应用程序C#.net中动态创建按钮的边框,c#,.net,c#-3.0,C#,.net,C# 3.0,海大家,, 我在运行时在c#.net Windows应用程序中动态创建按钮,我想为动态创建的按钮绘制一个边框。我怎么做,我尝试了这个 private void DrawBorder(Button bt) { Graphics g = bt.CreateGraphics(); ControlPaint.DrawBorder(g, bt.DisplayRectangle, Color.FromArgb(229, 227, 227),

海大家,, 我在运行时在c#.net Windows应用程序中动态创建按钮,我想为动态创建的按钮绘制一个边框。我怎么做,我尝试了这个

 private void DrawBorder(Button bt)
        {
            Graphics g = bt.CreateGraphics();
            ControlPaint.DrawBorder(g, bt.DisplayRectangle, Color.FromArgb(229, 227, 227), ButtonBorderStyle.Solid);
            g.Dispose();
        }
但它没有显示任何错误,但我看不到任何边界


请帮助

如果您想要一个绘制方式不同的按钮,您可能应该创建一个继承自
按钮
的新类,并在其中重写
OnPaint
和/或
OnPaintBackground
并实现绘图逻辑,例如绘制边框

当前解决方案不起作用的原因可能取决于调用
DrawBorder
方法的时间。如果在处理
OnPaint
事件时未执行图形代码,则在下一次绘制时将绘制您绘制的图形


但是无论如何,你不能自己画边框,而是在
按钮
对象上设置
边框
属性吗?

我想你不能在Windows窗体中设置按钮标准边框的颜色。@Uwe Keim:这可能是原因。虽然(229227227)看起来非常接近“标准”控件颜色…:)如果flatstyle是扁平的,则无法为边框设置FlatAppearanceProperty