Member 12712527 Ответов: 1

Как перетащить пользовательский элемент управления drop на форму...?


Я сделал пользовательский элемент управления, который находится там, в наборе инструментов. Я хочу перетащить этот пользовательский элемент управления в форму программно. Он показывает, но я не знаю, почему он не всегда перетаскивается(он не свободен) по форме. Программа, которую я пишу в разделе "Что вы пробовали?".
Пожалуйста помочь....

Что я уже пробовал:

public partial class Relations : Form
    {
        private bool isDragging = false;
        private int oldX, oldY;
        private UC1 uC15;
        private void Relations_Load(object sender, EventArgs e)
        {
           uC15 = new UC1();
            uC15.Parent = this;
           
            uC15.Location = new Point(300, 470);
            uC15.Size = new Size(300, 550);
           // this.Controls.Add(uC15);

            uC15.Show();

            uC15.MouseDown += new MouseEventHandler(OnMouseDown);
            uC15.MouseUp += new MouseEventHandler(OnMouseUp);
            uC15.MouseMove += new MouseEventHandler(OnMouseMove);
            

        }
        private void OnMouseDown(object sender, MouseEventArgs e)
        {
            isDragging = true;
            oldX = e.X;
            oldY = e.Y;
        }

        private void OnMouseMove(object sender, MouseEventArgs e)
        {
            if (isDragging)
            {
                uC15.Top = uC15.Top + (e.Y - oldY);
                uC15.Left = uC15.Left + (e.X - oldX);
            }
        }

        private void OnMouseUp(object sender, MouseEventArgs e)
        {
            isDragging = false;
        }
    }

Member 12712527

Ладно, теперь его тащат...

Member 12712527

Глупая ошибка...Извините и спасибо вам всем за участие и за то, что вы провели со мной время...

1 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, используйте правильную терминологию: если вы не путаете людей и получаете неправильный ответ.

"Перетаскивание" - это особый термин: это означает, что вы берете что-то с помощью мыши, тянете его за что-то еще и отпускаете, чтобы приемник мог его обработать. Скопируйте или переместите файл, возможно, или добавьте элемент управления в форму во время разработки.

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

Чтобы добавить к этому, он также не будет отображаться как среда выполнения, потому что вы закомментировали строку, которая заставила бы его сделать это:

// this.Controls.Add(uC15);

Даже если вы добавите эту строку обратно, она будет добавлять новый экземпляр элемента управления каждый раз, когда вы вызываете Relations_Load метод - чего этот код не делает, и так как это private метод он, вероятно, никогда не вызывается вообще, так что элемент управления никогда не будет добавлен в любом случае.

Перестаньте гадать и начните думать о том, что именно вы пытаетесь сделать: вы, кажется, не понимаете основы здесь, и это ведет вас по очень неправильному пути.


Maciej Los

Перетаскивать в 5!

Member 12712527

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

Member 12712527

Мой следующий запрос завершит часть части большой программы.....

Member 12712527

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