Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
207 / 224 / 87
Регистрация: 21.04.2013
Сообщений: 404
1

Как запретить вызов события Click при нажатии правой кнопки мыши

07.08.2014, 22:56. Показов 1629. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Как в своём UserControl запретить вызов события Click при нажатии правой кнопки мыши?
Перепробовал, наверно, все Protected Overrides Sub OnMouse'ы, но событие всё равно происходит.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Imports System.ComponentModel
 
Public Class Form1
    Private uc1 As UC
 
    Private count As Integer = 0
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        uc1 = New UC
 
        With uc1
            .Location = New Point(10, 10)
            .Size = New Size(100, 100)
            .BackColor = Color.Yellow
        End With
        AddHandler uc1.Click, AddressOf uc1_Click
 
        Me.Controls.Add(uc1)
    End Sub
 
    Private Sub uc1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        count += 1
        Me.Text = count.ToString
    End Sub
End Class
 
 
<DefaultEvent("Click")> Public Class UC
    Inherits UserControl
 
    Sub New()
        Me.SetStyle(ControlStyles.StandardDoubleClick, False)
    End Sub
 
    Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            MyBase.OnMouseClick(e)
        End If
    End Sub
 
    Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            MyBase.OnMouseDown(e)
        End If
    End Sub
 
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            MyBase.OnMouseUp(e)
        End If
    End Sub
 
    Protected Overrides Sub OnMouseDoubleClick(ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            MyBase.OnMouseDoubleClick(e)
        End If
    End Sub
End Class
Добавлено через 8 часов 24 минуты
Пока придумал такой способ:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<DefaultEvent("Click")> Public Class UC
    Inherits UserControl
 
    Sub New()
        Me.SetStyle(ControlStyles.StandardDoubleClick, False)
    End Sub
 
    Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = MouseButtons.Left Then
            MyBase.OnMouseUp(e)
            MyBase.OnClick(e)
        End If
    End Sub
 
    Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
        'MyBase.OnClick(e)
    End Sub
End Class
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2014, 22:56
Ответы с готовыми решениями:

Вызов события Click usercontrol
Добрый день! Создал свой собственный UserControl, который внутри себя содержит несколько...

Вызов MS Word при нажатии кнопки
Доброго времени суток! Не подскажите, как можно вызвать Ворд нажатием на кнопку?? Нужно чтобы...

Рисование мышкой. При нажатии левой кнопки мыши и ее перемещении рисуется кривая
У меня vb 2010 надо написать программу при нажатии левой кнопки мышки и ее перемещении рисуется...

Как удалить ярлык, из меню действий при нажатии правой кнопки мыши?
Подскажите пожалуйста, как удалить. Программу полностью удалил, но осталось вот это :(

2
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
07.08.2014, 23:33 2
ты переопределяешь все обработчики. В начале каждого обработчика напиши
VB.NET
1
If e.Button = MouseButtons.Right Then Return
0
207 / 224 / 87
Регистрация: 21.04.2013
Сообщений: 404
08.08.2014, 02:03  [ТС] 3
ViterAlex, Ваш вариант не сработал. Событие происходит при нажатии любой кнопки (в т.ч. и колёсика). Я выше уже писАл, что нашёл, меня устраивающее, решение.
0
08.08.2014, 02:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2014, 02:03
Помогаю со студенческими работами здесь

Как при нажатии правой кнопки мыши перемещать фигуры, нарисованные на PictureBox
Как при нажатии правой кнопки мыши перемещать фигуры, нарисованные на picturebox?

Как отменить меню, появляющееся при нажатии правой кнопки мыши на заголовке окна?
Как отменить меню, появляющееся при нажатии правой кнопки мыши на заголовке окна???

Нажатием левой кнопки мыши выбирать и запоминать цвет, при нажатии правой кнопки мыши - устанавливать выбранный цвет
Люди добрые, киньте какой-нибудь рабочий .asm для masm, похожий на решение следующей задачи, а то...

При нажатии правой кнопки мыши на форме с нее удаляются все кнопки
Написать программу, динамически порождающую на окне кнопки или метки. Левый верхний угол элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru