0

checkBoxテキストと目盛りのカスタムカラーで描画することは可能ですか? WndProcをオーバーライドして使用することで可能だと聞きましたがWM_PAINT、それを行った経験はありません。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

チェックボックスを再描画する方法の非常に基本的な例を次に示します。

    public class CustomCheckBox : CheckBox
    {
        public CustomCheckBox()
        {
            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
        }

        protected override void OnPaint(PaintEventArgs pevent)
        {
            base.OnPaint(pevent);
            if (this.Checked)
            {
                pevent.Graphics.FillRectangle(new SolidBrush(Color.Blue), new Rectangle(0, 0, 16, 16));
            }
            else
            {
                pevent.Graphics.FillRectangle(new SolidBrush(Color.Red), new Rectangle(0, 0, 16, 16));
            }
        }
    }

それは動作しますが、エッジの周りは非常に粗いです!ただし、これは、カスタムコントロールを描画する方法を非常に基本的に示しています。

于 2012-11-12T11:29:56.633 に答える