Загрузка...

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

Тема в разделе C# создана пользователем Yotic 28 июн 2021. 317 просмотров

  1. Yotic
    Yotic Автор темы 28 июн 2021 Ебашу на C# всё что захотите(Разноцветное) 43 13 янв 2021
    Есть код который двигает форму

    Код
        internal class FormMove : Form1
    {
    internal void StartMove()
    {
    MouseDown += new MouseEventHandler(MyForm1_MouseDown);
    MouseMove += new MouseEventHandler(MyForm1_MouseMove);
    MouseUp += new MouseEventHandler(MyForm1_MouseUp);
    }

    internal int iFormX = 1;
    internal int iFormY = 1;
    internal int iMouseX = MousePosition.X;
    internal int iMouseY = MousePosition.Y;

    internal void MyForm1_MouseDown(object sender, MouseEventArgs e)
    {
    isDragging = true;
    oldPos = new Point();
    oldPos.X = e.X;
    oldPos.Y = e.Y;
    }
    internal void Form1_MouseDown(object sender, MouseEventArgs e)
    {
    iFormX = Location.X;
    iFormY = Location.Y;
    iMouseX = MousePosition.X;
    iMouseY = MousePosition.Y;
    }
    internal void MyForm1_MouseMove(object sender, MouseEventArgs e)
    {
    if (this.isDragging)
    {
    Point tmp = new Point(Location.X, Location.Y);
    tmp.X += e.X - oldPos.X;
    tmp.Y += e.Y - oldPos.Y;
    Location = tmp;
    }
    }
    internal void MyForm1_MouseUp(object sender, MouseEventArgs e)
    {
    isDragging = false;
    }
    internal void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    int iMouseX2 = MousePosition.X;
    int iMouseY2 = MousePosition.Y;
    if (e.Button == MouseButtons.Left)
    Location = new Point(iFormX + (iMouseX2 - iMouseX), iFormY + (iMouseY2 - iMouseY));

    }
    private bool isDragging = false;
    private Point oldPos;
    }
    И код который вызывает метод, который добавляет события к мыше

    Код
            internal Form1()
    {
    InitializeComponent();
    FormMove.StartMove();
    }
    Ругатня: [IMG]
    Хз что делать лол, очень хочется не засорять свою мэйн форму хуйнёй по типу передвижение формы , хотелось бы вывести такую хуйню в отдельные классы
     
  2. wDude
    wDude 28 июн 2021 Боюсь быть не там и не тем. 3667 14 авг 2017
    То ли я слепой, то ли ты забыл указать ссылку на форму, которую ты хочешь двигать
     
  3. Humboy13
    Humboy13 28 июн 2021 41 8 янв 2020
    new FormMove().StartMove()? Либо делай метод статичный
     
    1. Yotic Автор темы
      Humboy13, Ебать чел, да ты крутой, только я написал что оба метода хуйня
  4. r3xq1
    Можно сделать так чтобы двигать за какой-либо контрол(элемент) формы

    Код
    /* Функция для передвижения формы без бордера */
    public void Controls_MouseDown(object sender, MouseEventArgs e)
    {
    // Если пользователь нажал левую кнопку мыши
    if (e.Button.Equals(MouseButtons.Left))
    {
    ((Control)sender).Capture = false; // захват элемента управления
    // Посылаем сообщение переместить элемент управления
    var m = Message.Create(Handle, 0xa1, new IntPtr(0x2), IntPtr.Zero);
    // Обработчик сообщения
    WndProc(ref m);
    }
    }
    И вызов:

    Код
    public Form1()
    {
    InitializeComponent();
    // Элементы за которые можно передвигать форму
    Label.MouseDown += Controls_MouseDown;
    Panel.MouseDown += Controls_MouseDown;
    }
    Модификаторы доступа internal вообще не нужны тебе.
    Ещё эта возня с координатами.
    У тебя весь процесс передвижения лежит внутри формы не статического класса, зачем ещё какой-то класс делать не понятно.
     
    1. Yotic Автор темы
      r3xq1, "Модификаторы доступа internal вообще не нужны тебе." Не очень понял почему.
    2. Yotic Автор темы
      r3xq1, Спасибки, скорость +- выросла, и таким кодом не стыдно засорить мэйн форму
    3. r3xq1
      Ch3p45a245, сейчас бы какой-то бы ноунейм пытался учить что надо юзать а что нет))) var - это вообще ахеренная вещь! Но их не нужно юзать если пишешь примерно такой код:
      Код
      var length = 10;// В таком случае нужно явный тип int и.т.д
      Так что не выёживайся что знаешь что-то лучше других.
  5. CoderVir
    сделай паблик. нахуй интернал.
    --- Сообщение объединено с предыдущим 1 июл 2021
    Я вообще всегда делаю всё паблик. и методы и классы и формы и так далее.
     
    1. Посмотреть предыдущие комментарии (8)
    2. Yotic Автор темы
      @CoderVir, Мне похуй, правда, я не шарю в декомпиляции кода, и жалко что не шарю в защите от декомпиляторов, у меня антидебагер хуярит основную программу просто так, ты о чём
    3. CoderVir
      Yotic, антидебагеры. на xss почитай. там много тем. Анти дамп, анти дебагер и тд
    4. Yotic Автор темы
      Я сейчас спидраню змейку на шарпе формах
  6. MakareviCH
    MakareviCH 6 июл 2021 Хай киска, пиши мне 145 16 июн 2017
    А ты экземпляр класса не создал.
    вот и проблем.
     
Загрузка...
Top