終於,從System.Windows.Forms.Control繼承了一下。

來源:互聯網
上載者:User
一個好網頁,不錯,聊天記錄,記下。

前天發的這個隨筆,裡面記載了一些資源,由於真正接觸.NET(Win Form?)還是比較晚,所以目前為止還是笨鳥,還是後飛。

仔細看了裡面一些資源,終於做出來了第一個Control,慶祝一下吧。

using System;
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Design;

namespace DividerPanel
{
    /**//// <summary>
    /// My First Control.
    /// </summary>
    [ToolboxItem(true)]
    [ToolboxBitmap(typeof(MyFirstControl))]
    public class MyFirstControl : System.Windows.Forms.Control
    {

        private System.Drawing.Drawing2D.GraphicsPath graphicsPath = new GraphicsPath(System.Drawing.Drawing2D.FillMode.Alternate);

        private Color backColor = Color.Black;

        public MyFirstControl()
        {
            this.graphicsPath.AddPolygon(new Point[]{
                                                new Point(10, 0),
                                                new Point(10, 10),
                                                new Point(0, 10),
                                                new Point(0, 90),
                                                new Point(10, 90),
                                                new Point(10, 100),
                                                new Point(190, 100),
                                                new Point(190, 90),
                                                new Point(200, 90),
                                                new Point(200, 10),
                                                new Point(190, 10),
                                                new Point(190, 0)
                                            });

            this.Region = new Region(graphicsPath);
        }

        private void InitializeComponent()
        {
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            LinearGradientBrush b = new LinearGradientBrush(this.ClientRectangle,
                this.backColor, this.backColor, 0, false);
              
            e.Graphics.FillRectangle(b, this.ClientRectangle);
        }

        protected override void OnGotFocus(EventArgs e)
        {
            base.OnGotFocus (e);
            this.backColor = Color.Red;
            this.Invalidate();
        }

        protected override void OnLostFocus(EventArgs e)
        {
            base.OnLostFocus (e);
            this.backColor = Color.Black;
            this.Invalidate();
        }

        protected override void OnClick(EventArgs e)
        {
            base.OnClick (e);

            this.Focus();
        }

    }
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.