我已經創建了一個從Panel導出的自定義控件。 一切工作正常,除了在設計師我的控制只有當它失去了重點時重繪。 我錯過了什麼?如何在設計器中更新自定義控件?
這裏是CustomControl.cs
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace Picwing
{
public partial class xPanel : Panel
{
private SizeF textSize;
public xPanel() {
InitializeComponent();
}
[Browsable(true)]
public override string Text {
get { return base.Text; }
set { base.Text = value; }
}
protected override void OnPaint(PaintEventArgs pe) {
base.OnPaint(pe);
textSize = pe.Graphics.MeasureString(Text, Font);
pe.Graphics.DrawRectangle(new Pen(ForeColor, 1), pe.ClipRectangle.X, pe.ClipRectangle.Y + textSize.Height/2, pe.ClipRectangle.Width - 1, pe.ClipRectangle.Height - textSize.Height/2 - 1);
pe.Graphics.FillRectangle(new SolidBrush(BackColor), 5, 0, textSize.Width, textSize.Height);
pe.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), pe.ClipRectangle.X + 6, pe.ClipRectangle.Y);
}
}
}
的代碼這是內部xPanel1移動label1的後所取的打印屏幕,它失去焦點之前。
你能打印屏幕嗎? –
你忘了發佈你的控制代碼。 –
您是否使用'+ ='註冊了OnPaint事件? – jdweng