Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Ответить
Настройки темы
VBA - Visual Basic 2008

Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Uzvern
Дата: 24-04-2008
Описание: Забыл дописать название темы. Прошу простить.
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).

Спасибо за внимание.

>>Блин, не дописал в названии темы : Действие при нажатии правой кнопки

Отправлено: 17:47, 24-04-2008

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Приветствую TomSoyer.
В простейшем случаи
Код: Выделить весь код
    Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
        MsgBox("Координаты клика мыши в области формы: " & e.Location.ToString, MsgBoxStyle.Information, "Отслежен клик мыши")
    End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:04, 08-03-2010 | #321



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 211
Благодарности: 49

Профиль | Отправить PM | Цитировать


Всё это понятно. Только вот как в проект добавить этот обработчик? Просто прописать - скорее всего ничего не получится. Где-то должен быть ещё и вызов этого обработчика. Я сужу по С++, просто так случилось что нужно именно на VB 2008.

Отправлено: 17:17, 08-03-2010 | #322


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


TomSoyer, это общий случай, если сама форма является самим объектом, на которую и выводится графика. Данный код как раз достаточно добавить в пределах видимости класса данной формы. Обработчик вызывается получив событие на окно (детали скрыты средой).
Если область какой-то элемент управления, нужно выбрать аналогичное событие, если такое имеется, для него. Или в конструкторе класса формы назначить ему такое (если это возможно).

Отправлено: 17:34, 08-03-2010 | #323


Старожил


Сообщения: 211
Благодарности: 49

Профиль | Отправить PM | Цитировать


Да, действительно. Механизм работает. Только в областях окна формы. Часть формы занята элементом PictureBox. Вот на этой области и нужен перехват клика мыши. Как на нём заставить работать этот механизм. Я уже голову сломал над этой проблемой, перерыл все менюшки/свойства, но так и не понял, как в VB добавлять обработчики событий.

Отправлено: 18:00, 08-03-2010 | #324


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


TomSoyer, событие для PictureBox называется аналогично (без On).

Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:24, 08-03-2010 | #325


Старожил


Сообщения: 211
Благодарности: 49

Профиль | Отправить PM | Цитировать


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

Отправлено: 19:24, 08-03-2010 | #326


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!
Занимаюсь изучением vb2008 совсем недавно, на форуме похожих тем не нашел, посему вопросик, скажите пожалуйста, вот есть MDI формы, открываю одну, разворачиваю/сворачиваю, открываю вторую и она автоматом разворачивается, как сделать так чтобы вторая при открытии имела нормальный вид?
Заранее спасибо!

Отправлено: 20:17, 01-04-2010 | #327


Аватара для Medic84

$AutoITer


Автор проектов


Сообщения: 446
Благодарности: 44

Профиль | Отправить PM | Цитировать


О. Хорошая темка.
У меня назрел вопрос. Я тут недавно начал изучать Visual Basic 2008 и никак не могу найти нормального самоучителя... Приходится по справке, из за этого никак не могу понять некоторые вещи: Классы, сабы и д.р. Никто не знает нормального хорошего самоучителя?

И еще... никто не может предложить модуля архивирования\разорхивирования файлов? Я нашел под C# и не могу преобразовать под VBA

-------

AutoIT Русское сообщество| Моя лаборатория


Последний раз редактировалось Medic84, 18-04-2010 в 22:26.


Отправлено: 22:07, 18-04-2010 | #328


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Medic84 Чарльз Петцольда - Программирование для Microsoft Windows на Microsoft Visual Basic .NET, в 2-х томах.
Очень рекомендую. Насчёт актуальности должен предупредить, книга по .NET 1.1 (сегодня уже .NET4.0 наступает).
Но такие вещи как классы, сабы там рассмотрены достаточно хорошо (про классы в самом начале книги есть весьма хороший пример (про календарь)).

Насчёт непосредственно VBA не скажу. Но если есть код на C#, то получить его вариант в VB можно с помощью ОнЛайн "переводчика" - http://www.developerfusion.com/tools.../csharp-to-vb/
Специфические примеры может корректно и не перенесёт, а так вполне пригодный.

Отправлено: 23:26, 18-04-2010 | #329


Аватара для Большой Кол

Пользователь


Сообщения: 57
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброй ночи, вы писали :

В простейшем случаи
Код:

Protected Overrides Sub OnMouseClick(ByVal e As System.Windows.Forms.MouseEventArgs)
MsgBox("Координаты клика мыши в области формы: " & e.Location.ToString, MsgBoxStyle.Information, "Отслежен клик мыши")
End Sub


А нельзя ли уточнить, я хочу получить координаты X Y курсора мыши . Координаты мыши на экране получить достаточно просто :
Dim X1 As Integer
Dim Y1 As Integer
X1 = MousePosition.X.ToString
Y1 = MousePosition.Y.ToString

Но мне нужны координаты относительно формы(или какого-либо объекта) откуда их извлечь? Т.е. как мне кажется должно быть какое-то свойство объекта которое их показывает, что-то типа - Объект.Мышь.координаты.Х но какой точный синтаксис? Или я ошибаюсь?

Отправлено: 01:52, 24-04-2010 | #330



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - MS Visual Basic 2008 Expres Edition файлы проекта Anton Naumov Программирование и базы данных 7 14-05-2010 14:09
VBA - Visual basic 2008 Anton Naumov Программирование и базы данных 1 02-01-2010 22:35
visual basic 6 иоанн Хочу все знать 1 27-04-2009 18:51
visual basic 6 guma Программирование и базы данных 1 26-04-2007 20:41
Visual basic carlos Программирование и базы данных 1 04-08-2003 02:03




 
Переход