1
Özel bir düğmem var. OnPaint
yöntemi, denetimin sınıf dosyasında çalışıyor, ancak Button.Paint
yöntemi, Form.cs
'da çalışmıyor. Bu neden oluyor ve nasıl düzeltilebilir? Düğme içinNeden özel kontrolün boya olayı Form.cs'de çalışmıyor?
Kodum:
//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...
kod Form.cs
yılında: ben bir çözüm buldum gelmiş
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
altoButton1.Paint += altoButton1_Paint;
}
void altoButton1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(Pens.Red, 3, 3, 10, 10);
}
private void timer1_Tick(object sender, EventArgs e)
{
altoButton1.Invalidate();
}
}
eklemek edilir
(https://msdn.microsoft.com/en-us/library/edzehd2t (v = vs.110) .aspx) 'XXXX' olayının' OnXXXX' tarafından yükseltileceğini göreceksiniz ve bir 'OnXXXX'yi geçersiz kıldığınızda olayı yükseltmek için 'base.OnXXXX' çağırmalısınız. –