Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#]Перемещать кнопки по панели


Автор: Malish 4.3.2009, 19:59
Здравствуйте!!!
Расскажите, как перемещать кнопки по панели.
Суть программы:
1.Пользователь мышкой кликает по панели -> в точке кликанья появляется кнопка, кнопок созданных таким образом может быть несколько.

2.Пользователь хочет переместить созданную им кнопку -> кликает по кнопке(MouseDawn) и перемещает ее по панели.

Автор: Malish 6.3.2009, 10:48
Код

class MyButton : System.Windows.Forms.Button
    {
        Point DownPoint;
        bool IsDragMode;

        protected override void OnMouseDown(MouseEventArgs mevent)
        {
            DownPoint = mevent.Location;
            IsDragMode = true;
            base.OnMouseDown(mevent);
        }

        protected override void OnMouseUp(MouseEventArgs mevent)
        {
            IsDragMode = false;
            base.OnMouseUp(mevent);
        }

        protected override void OnMouseMove(MouseEventArgs mevent)
        {
            if (IsDragMode)
            {
                Point p = mevent.Location;
                Point dp = new Point(p.X - DownPoint.X, p.Y - DownPoint.Y);
                Location = new Point(Location.X + dp.X, Location.Y + dp.Y);
            }

            base.OnMouseMove(mevent);
        }
    }

Автор: Malish 10.3.2009, 23:11
Создавать и перемещать кнопки научился.

Подскажите пожалуйста, как написать событие по удалению кнопки при нажатии на Delete.
Класс кнопки описан выше.

Код

//вот так создаю кнопку на панели
        MyButton MyButt;
        List<Control> ListCont = new List<Control>();
private void panel1_MouseClick(object sender, MouseEventArgs e)
        {
             MyButt = new MyButton();
             MyButt.Location = new Point(e.X, e.Y);
             MyButt.Text = "Кнопка";
             this.panel1.Controls.Add(MyButt);
             ListCont.Add(MyButt);
         }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)