[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip)] public partial class ToolStripCheckBox : ToolStripItem { private bool IsChecked = false; public bool HasChecked { get { return IsChecked; } set { IsChecked = value; this.Invalidate(); } } public ToolStripCheckBox() { InitializeComponent(); } public override Size GetPreferredSize(Size constrainingSize) { base.GetPreferredSize(constrainingSize); Size preferredSize = base.GetPreferredSize(constrainingSize); preferredSize.Width += 13; return preferredSize; } protected override void OnClick(EventArgs e) { IsChecked = !IsChecked; base.OnClick(e); } protected override void OnPaint(PaintEventArgs e) { if (base.Owner != null) { Point pLocation = new Point(e.ClipRectangle.X, e.ClipRectangle.Height / 2 - (13 / 2)); Size txtSize = TextRenderer.MeasureText(this.Text, this.Font); Rectangle rectText = new Rectangle(pLocation.X + 13, pLocation.Y, txtSize.Width, txtSize.Height); CheckBoxState chkState = IsChecked ? CheckBoxState.CheckedNormal : CheckBoxState.UncheckedNormal; CheckBoxRenderer.DrawCheckBox(e.Graphics, pLocation, rectText, this.Text, this.Font, false, chkState); } } }
标签:CheckBox,工具栏,单选框,preferredSize,IsChecked,base,pLocation,public,Size From: https://www.cnblogs.com/LuoCore/p/18264427