|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008 |
|
VBA - Visual Basic 2008
|
Старожил Сообщения: 161 |
Профиль | Сайт | Отправить PM | Цитировать
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).
Спасибо за внимание. >>Блин, не дописал в названии темы : Действие при нажатии правой кнопки |
|
Отправлено: 17:47, 24-04-2008 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Можно ведь искать через Find, а чтобы можно было выполнять операцию вниз и вверх (вперед, назад) существуют операторы FindNext/FindPrevious. Можно и перебирать весь диапазона в цикле For Each.
Пример здесь Search and Highlight Text in a RichTextBox также здесь, поиск по таблице в Excel http://www.gotdotnet.ru/LearnDotNet/...ork/22054.aspx Проще некуда MkDir ("С:\Новая Папка") |
Отправлено: 03:52, 30-05-2008 | #91 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Кстати, что такое цикл For Each?
Чет я немогу понять как юзать FindNext/FindPrevious. Можно показать на примере? В том примере не смог ничего путного понять. |
Отправлено: 12:16, 30-05-2008 | #92 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Как полностью вырубить в VB.Net
1. синтаксическую проверку во время написания программы (подчерки и т.д.) 2. всяческие исправления a) табулирование, b) замены маленьких букв на большие, c) постановку скобок, d) авто закрытие циклов, e) автозакрытие функций и т.п Заранее спасибо за ответ |
------- Отправлено: 15:18, 30-05-2008 | #93 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать For Each очень удобен когда на перёд не известно количество элементов, а While и Repeat не охота пристраивать, пример. Указанный Find/FindNext/FindPrevious будут работать при табличном представлении строчки, например как в Excel при указание Range.
Сдесь же можно переделать, добавив на форму ещё RichTextBox1 (для хранения строки и отображения результата) и TextBox1(для указания чего искать), указанный код к такому виду. Public Class Form1 Dim FindingString As String = "asdgfsdfgsdfgsdfgStringsdfgsdfgsdfgStringsdfgsdfgsdfgString" Dim FindString As String = "String" 'Dim FirstTemp As String = "" 'Dim SecondTemp As String = "" 'Dim ValidateTemp As Integer = 0 Dim start As Integer = 0 Dim indexOfSearchText As Integer = 0 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load RichTextBox1.Text = FindingString TextBox1.Text = FindString End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'If ValidateTemp = 0 Then 'ValidateTemp = 1 'FirstTemp = FindingString 'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString)) 'FirstTemp = SecondTemp 'MsgBox(FirstTemp) 'Else 'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString) + Len(FindString)) 'FirstTemp = SecondTemp 'SecondTemp = Mid(FirstTemp, InStr(FirstTemp, FindString)) 'FirstTemp = SecondTemp 'MsgBox(FirstTemp) 'End If Dim startindex As Integer = 0 If TextBox1.Text.Length > 0 Then startindex = FindMyText(TextBox1.Text.Trim(), start, RichTextBox1.Text.Length) End If ' If string was found in the RichTextBox, highlight it If startindex >= 0 Then ' Set the highlight color as red RichTextBox1.SelectionColor = Color.Red ' Find the end index. End Index = number of characters in textbox Dim endindex As Integer = TextBox1.Text.Length ' Highlight the search string RichTextBox1.Select(startindex, endindex) ' mark the start position after the position of ' last search string start = startindex + endindex End If End Sub Public Function FindMyText(ByVal txtToSearch As String, ByVal searchStart As Integer, ByVal searchEnd As Integer) As Integer ' Unselect the previously searched string If searchStart > 0 AndAlso searchEnd > 0 AndAlso indexOfSearchText >= 0 Then TextBox1.Undo() End If ' Set the return value to -1 by default. Dim retVal As Integer = -1 ' A valid starting index should be specified. ' if indexOfSearchText = -1, the end of search If searchStart >= 0 AndAlso indexOfSearchText >= 0 Then ' A valid ending index If searchEnd > searchStart OrElse searchEnd = -1 Then ' Find the position of search string in RichTextBox indexOfSearchText = RichTextBox1.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None) ' Determine whether the text was found in richTextBox1. If indexOfSearchText <> -1 Then ' Return the index to the specified search text. retVal = indexOfSearchText End If End If End If Return retVal End Function Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged start = 0 indexOfSearchText = 0 End Sub End Class mrcnn, Это всё выключается здесь Project -> Options-> Text Editor Basic -> VB Specific |
Отправлено: 17:03, 30-05-2008 | #94 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать >>Это всё выключается здесь Project -> Options-> Text Editor Basic -> VB Specific
Отключения подчерков нет. |
------- Отправлено: 17:33, 30-05-2008 | #95 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Как работать с Error , Err и т.д. + как выводить справку, после нажатия в MsgBox на кнопку "Справка"
|
Отправлено: 21:45, 30-05-2008 | #96 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать mrcnn, да, верно, но всё другое отключается. Про подчёркивания я уточнил, когда увидел тему Visual Studio .Net. Вероятно нужно в умной книге почитать, в Helpе так не находится. Искал по UnderLine Speell Check
Uzvern, если в коде нужно обработать одну строчку, в случаи ошибки, и ошибка одна, то можно используя конструкцию On Error Resume Next. Можно её использовать и не обрабатывать ошибки, оставив эту строчку в начале кода, так сказать пусть прога использует без ошибочную философию. On Error Resume Next '... If Err.Number = <Номер ошибки> Then '...Сообщаем что такая вот ошибка или делаем альтернативу, план Б End If On Error GoTo Corrector '... Corrector: Select Case Err.Number Case <Номер ошибки> '...Сообщаем что такая вот ошибка или делаем альтернативу, план Б Case Else 'Когда не предвиденная ошибка '...Так вот и так, отправте нам что привело к тому что выскочила такая ошибка End Select On Error Resume Next Err.Raise 6 ' Raise an overflow error иливместо 6ти указываем интересующий номер MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description) Err.Clear ' Clear the error. В случаи чего мы предвидим потенциальную ошибку, через Catch ex, и обрабатываем. Ещё раз повторюсь, что в VB6м данной конструкции не было. С Helpom не всё в порядке, вроде бы всё просто Но функция MsgBox не возвращает никаких значений, если нажали Help. Нужно искать другой подход. В VB6м сама структура просит указать файл справки, да и раздел справки. Не сказал бы, что это уж очень популярная фича, вызов из MsgBoxа справки. Если интерфейс интуитивно понятный то и справка не нужна. Тем не менее, правила хорошего тона обязывают её существование и дистрибуцию вместе с программой. |
Отправлено: 15:07, 31-05-2008 | #97 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Что за фигню (в каких единицах) мне возвращает Math.Acos и как эту фигню превратить в градусы?
Мне нужно значение в градусах, полученное из косинуса |
------- Отправлено: 15:33, 31-05-2008 | #98 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать mrcnn, MSDN нету? Ставится даже c Express редакцией. Причём на неё можно поставить полный не Express.
Всё верно результата возвращает в specified number. Math.Acos Method |
Отправлено: 15:57, 31-05-2008 | #99 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 15:16, 01-06-2008 | #100 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|