Добавление аргументов события мыши для класса
Хорошо я построил класс который производит прямоугольники
30 из них в 3 группы по 10 человек.
С чем у меня возникли проблемы, так это с тем, что ?
когда я создаю экземпляр скажем локальную копию
пример:
Dim betline1 As New TicketGroupNodeControl betline1.NewNumericUpAndDownXValue() = NumericUpDown1.Value betline1.NewNumericUpAndDownYValue() = NumericUpDown2.Value betline1.NewNumericUpAndDownXXValue() = NumericUpDown3.Value betline1.NewNumericUpAndDownYYValue() = NumericUpDown4.Value betline1.FibTrainerOhioPk3BetLineNodeGroup() For i = 0 To betline1.BetLineNodeGroup.Length - 1 e.Graphics.DrawRectangle(Pens.Blue, betline1.BetLineNodeGroup(i)) e.Graphics.FillRectangle(Brushes.Blue, betline1.BetLineNodeGroup(i)) Next i
Когда я пытаюсь использовать args событий мыши
это требует, чтобы я должен был объявить переменную betline1 глобально, чтобы она работала.
При попытке использовать mousedown и mousemove.
То, что я пытаюсь сделать, - это выбрать первый прямоугольник в группе и перетащить его в нужное место с помощью мыши.
Что я уже пробовал:
Это действительно сработало, но, как я уже говорил, это требует от меня сделать переменную глобальной.
Мне нужно, чтобы он оставался локальным, поэтому, когда он не используется, он не существует.
Возможно, у меня будет 100 таких копий для разных установок .
но только скажем, что 10 установок будут активны в любой момент времени.
Private Sub RadDiagram1_MouseMove(sender As Object, e As MouseEventArgs) Handles RadDiagram1.MouseMove Label1.Text = "X:" & e.X.ToString & " " & "Y:" & e.Y.ToString 'If e.Button = Windows.Forms.MouseButtons.Left AndAlso betConfig1.BetConfigNodeGroup(0).Contains(e.Location) Then ' NumericUpDown21.Value = e.X + x ' NumericUpDown22.Value = e.Y + y ' RadDiagram1.Invalidate() 'End If
Private Sub RadDiagram1_MouseDown(sender As Object, e As MouseEventArgs) Handles RadDiagram1.MouseDown 'If e.Button = Windows.Forms.MouseButtons.Left AndAlso betConfig1.BetConfigNodeGroup(0).Contains(e.Location) Then ' x = NumericUpDown21.Value - e.X ' y = NumericUpDown21.Value - e.Y 'End If End Sub
Если я сделаю betconfig1 глобальным, это сработает.
Как я могу добавить его в класс или, возможно, добавить какой-то обработчик?
Может ли кто-нибудь привести мне пример того, как я все еще могу вызвать аргумент мыши из мгновения класса, который я создаю в процедуре paint picturebox1 или " raddiagram 1"
Когда я пытаюсь использовать эту переменную для запуска события mousemove . Я не могу использовать эту переменную в этом подразделе, потому что она была локальной в процедуре рисования.
Любая помощь будет оценена по достоинству.
Я полностью самоучка и просто не знаю, в какую сторону идти, чтобы найти выход из этой проблемы.
Спасибо Джефф