Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Таскать форму за любое место


Автор: Nickey 8.1.2008, 14:06
Поиски гуглом по форуму дали очень скудные результаты, в интернете присутствуют невнятные примеры на делфи (в основном копипасты) и C++ которые я не понял как можно использовать. Если тема поднималась раньше (должна была подниматься) киньте в меня линком как такое реализуеться в .NET. Так всетаки как таскать форму за любое место, а не только за заголовок ?

 smile  smile  smile 

Автор: VisualProgrammerNET 8.1.2008, 15:45
Можно было просто воспользоваться встроенным поиском в форму по разделу дотнет по слову "таскать"
http://forum.vingrad.ru/forum/topic-151796.html

Автор: Nickey 8.1.2008, 16:04
Спасибо. Поиск у меня не находил данный пост, все что угодно, только не это. Поэтому и начал искать гуглом.

Автор: GOBLIN_TT 8.1.2008, 19:12
А есть пример на VB.NET ?)
Поиск тоже не очень помог, есть много примеров и всё на C#)

Автор: Kefir 8.1.2008, 20:17
GOBLIN_TT, http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx  smile 

Автор: Nickey 9.1.2008, 17:02
Вот еще вариант позаимствованый с codeproject:

Код


        public Form1()
        {
            InitializeComponent();
            this.MouseUp += new MouseEventHandler(Form1_MouseUp);
            this.MouseMove += new MouseEventHandler(Form1_MouseMove);
            this.MouseDown += new MouseEventHandler(Form1_MouseDown);
        }

        void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isMouseDown = true;
                xLast = e.X;
                yLast = e.Y;
            }

        }

        void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (isMouseDown)
            {
                int newY = this.Top + (e.Y - yLast);
                int newX = this.Left + (e.X - xLast);

                this.Location = new Point(newX, newY);
            }

        }

        void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false;
        }



Только щас сообразил, используя этот способ надо обрабатывать ситуацию кагда форма развернута на весь экран иначи будут лаги после свертывания.

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