WinForm — сводка кнопок

искусственный интеллект
  1. Общие свойства
  2. Резюме примера
  • Как динамически создать элемент управления Button.

Чтобы динамически создать элемент управления, сначала создайте объект класса элемента управления, а затем используйте метод Add системного объекта Controls, чтобы зарегистрировать элемент управления в форме. пример:

private void Form1_MouseDown(object sender,MouseEventArgs e)

{

       Button btn=new Button();

btn.Left=e.X;

btn.Top=e.Y;

btn.Name="Кнопка"+intCount.ToString();

btn.Text="Кнопка:+intCount.ToString();

this.Controls.Add(btn);

intCount++;

}

  • Реализовать перерисовку кнопки Button

Создайте новый пользовательский элемент управления и назовите его ControlButton. Затем измените наследование на кнопку

  public partial class ControlButton : Button

    {

        public ControlButton()

        {

            this.SetStyle(

                ControlStyles.UserPaint |

                ControlStyles.AllPaintingInWmPaint |

                ControlStyles.OptimizedDoubleBuffer |

                ControlStyles.ResizeRedraw |

                ControlStyles.SupportsTransparentBackColor, true);

            FlatStyle = FlatStyle.Flat;

            FlatAppearance.BorderSize = 1;

            FlatAppearance.BorderColor = Color.FromArgb(102, 102, 102);

            FlatAppearance.MouseOverBackColor = Color.FromArgb(102, 102, 102);

            FlatAppearance.MouseDownBackColor = Color.FromArgb(150, 150, 150);

        }

        private bool _isClicked = false;

        public bool IsClicked

        {

            get { return _isClicked; }

            set { _isClicked = value; }

        }

        private bool _inClient = false;

        private bool _mouseDown = false;

        private bool _enableClicked = false;

[Категория («пользовательский атрибут»), Описание («включить нажатое состояние»)]

        public bool EnableClicked

        {

            get { return _enableClicked; }

            set { _enableClicked = value; }

        }

        private Color _fontColor = Color.Gainsboro;

[Категория("пользовательский атрибут"), Описание("цвет шрифта в нажатом состоянии")]

        public Color ClickedForeColor

        {

            get { return _fontColor; }

            set { _fontColor = value; }

        }

        private Size _imgSize;

[Категория ("пользовательский атрибут"), Описание ("размер изображения")]

        public Size ImageSize

        {

            get { return _imgSize; }

            set

            {

                _imgSize = value;

                Invalidate();

            }

        }

        private Image _enterImage = null;

[Категория("пользовательский атрибут"), Описание("изображение при наведении курсора мыши")]

        public Image EnterImage

        {

            get { return _enterImage; }

            set

            {

                _enterImage = value;

            }

        }

        private Image _downImage = null;

[Категория("пользовательский атрибут"), Описание("картинка при нажатии мыши")]

        public Image DownImage

        {

            get { return _downImage; }

            set { _downImage = value; }

        }

        protected override void OnMouseDown(MouseEventArgs mevent)

        {

            IsClicked = !IsClicked;

            _mouseDown = true;

            base.OnMouseDown(mevent);

        }

        protected override void OnMouseUp(MouseEventArgs mevent)

        {

            _mouseDown = false;

            base.OnMouseUp(mevent);

        }

        protected override void OnMouseEnter(EventArgs e)

        {

            _inClient = true;

            base.OnMouseEnter(e);

        }

        protected override void OnMouseLeave(EventArgs e)

        {

            _inClient = false;

            base.OnMouseLeave(e);

        }

}

После того, как поколение успешно, вы можете увидеть его на панели инструментов.

 

Ссылка на код:blog.CSDN.net/QQ_33324878…