Как сделать так, чтобы событие охватывало несколько форм - PullRequest
0 голосов
/ 14 декабря 2018

Проект, над которым я работаю, нуждается в паре кнопок на нескольких формах, вместо того, чтобы делать код, показанный ниже, я надеялся, что его можно сделать глобальным.

Это только одна часть проекта, всекод делает, это увеличивает изображение кнопки, когда пользователь наводит на нее курсор.

Я пробовал смотреть на классы, теги и атрибуты.Я знаю, что классы можно использовать в разных формах, но я не могу узнать, работают ли они с событиями.

private void btnEnter_MouseEnter(object sender, EventArgs e)
{
   Button btn = (Button)sender;
   btn.Size = new Size(299, 102);
}

private void btnLeave_MouseLeave(object sender, EventArgs e)
{
   Button btn = (Button)sender;
   btn.Size = new Size(289, 92);
}

1 Ответ

0 голосов
/ 15 декабря 2018

Вы можете создать унаследованную кнопку.Добавьте новый класс, затем убедитесь, что вы поставили : Button после имени класса.

using System.Drawing;
using System.Windows.Forms;

namespace InheritedButton
{
    public class ExpandButton : Button
    {
        public Size EnterSize { get; set; }
        private Size _LeaveSize;
        public Size LeaveSize
        {
            get
            {
                return (_LeaveSize);
            }
            set
            {
                _LeaveSize = value;
                this.Size = LeaveSize;
            }
        }

        public ExpandButton() : base()
        {
        }

        protected override void OnMouseEnter(EventArgs e)
        {
            this.Size = EnterSize;
            base.OnMouseEnter(e);
        }

        protected override void OnMouseLeave(EventArgs e)
        {
            this.Size = LeaveSize;
            base.OnMouseLeave(e);
        }
    }
}

Создайте свой проект, и новая кнопка появится на панели инструментов.Перетащите его на форму / элемент управления и убедитесь, что вы установили EnterSize и LeaveSize.EnterSize определяет размер кнопки при наведении мыши, а LeaveSize устанавливает начальный размер и устанавливает размер кнопки при наведении мыши.Вам не нужно устанавливать свойство Size, просто установите LeaveSize.

В любое время, когда вы хотите использовать кнопку расширения / сжатия, просто используйте вместо этого унаследованную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...