我有一个自定义按钮。 filter
方法在控件的类文件中有效,但OnPaint
方法在Button.Paint
中无法正常工作。为什么会发生这种情况?如何解决?
我的按钮代码:
Form.cs
//code...
public AltoButton()
{
SetStyle(ControlStyles.AllPaintingInWmPaint|ControlStyles.OptimizedDoubleBuffer|ControlStyles.ResizeRedraw|ControlStyles.SupportsTransparentBackColor|ControlStyles.UserPaint, true);
BackColor = Color.Transparent;
ForeColor = Color.Black;
Font = new System.Drawing.Font("Comic Sans MS", 10, FontStyle.Bold);
state = MouseState.Leave;
transparency = false;
}
#endregion
#region Events
protected override void OnPaint(PaintEventArgs e)
{
//code to draw shape and painting
}
//code...
中的代码:
Form.cs
答案 0 :(得分:1)
我自己找到了解决方案。原因是我删除了base.OnPaint(e)
代码块中的OnPaint(e)
。
解决方案只是添加base.OnPaint(e)
protected override void OnPaint(PaintEventArgs e)
{
//code to draw shape and painting
base.OnPaint(e);
}
答案 1 :(得分:0)
问题可能在于屏幕上的绘图元素 - 您应该练习这样做以获得更多信息(这在不同项目中是独一无二的。)。您可以将元素添加到屏幕,选项卡等...希望它会帮助你。(帮帮我:P)