|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008 |
|
VBA - Visual Basic 2008
|
Старожил Сообщения: 161 |
Профиль | Сайт | Отправить PM | Цитировать
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).
Спасибо за внимание. >>Блин, не дописал в названии темы : Действие при нажатии правой кнопки |
|
Отправлено: 17:47, 24-04-2008 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Admiral, а если я добавлю ещё TextBox и при нажатии на кнопку, чтобы вылетало сообщение с текстом из текст бокса. Как это сделать?
|
Отправлено: 18:17, 23-07-2008 | #181 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Я так понимаю TextBox на каждую вкладку
For x As Integer = 0 To TabControl.TabCount - 1 REM ... код из предыдущего поста Dim t As New TextBox TabControl.TabPages(x).Controls.Add(t) t.Name = "TextBox" & x + 1 t.Text = 1000 * (x + 1) Next End Sub Protected Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) If TypeOf (sender) Is Button Then ' check to make sure that the sender is actually a Button MsgBox(TabControl.SelectedTab.Controls.Item(1).Text) 'Говорим что бы вывело текст контрола размещённого в выделенной вкладке по индексом 1, под 0 ушла кнопка End If End Sub |
Отправлено: 19:33, 23-07-2008 | #182 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Admiral, блин, точняк там же можно выводить из контрола. чет я совсем затупил. Спасибо, Чувак!
|
Отправлено: 22:16, 23-07-2008 | #183 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать А можно как-то писать и использовать в VB dll?
|
Отправлено: 01:19, 24-07-2008 | #184 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать С переходом на NET VB утратил базовую возможность писать ActiveX DLL.
Писать всё же можно, но среда аналогичной вкладки Придётся немного помудрить, что б сделать всё же DLL Writing an ActiveX Control in VB.NET И их правильное использования. DLL на VB.NET (точка входа) Microsoft всё же надеется что среди богатых возможностей .NET FrameWorks найдутся классы которые прямо из коробки подойдут к проге, так что б смысла писать DLL у разработчиков не было. В тоже время наибольший интерес представляют уже написанные DLL (не обязательно на NET). И в этой теме, когда необходимо было использовать WinApi функции, как раз использовались вызовы из системных библиотек. Есть удобное средство позволяющие узнать, как вызывать функции из написанных DLL (тех что входят в базу проги, преимущественно системные, так что WinAPI) ApiViewer (en) |
Отправлено: 01:56, 24-07-2008 | #185 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 13:02, 24-07-2008 | #186 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Таймер, в отличие от VB6, помещается не на саму форму, а среда сама показывает, что он есть в проекте, но не добавляет его на форму.
Timer Class (по ссылке пример) По указанным причинам так нельзя, кроме таймера, MainMenu или ContextMenu так как эти контроли не входят в класс Control.ControlCollection. >> |
Отправлено: 13:56, 24-07-2008 | #187 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Как можно перевсти фокус с одно текст бокста на другой, ну или на кнопку например.
Все. нашел : Как можно сделать обрашение к нужному текст боксу по кнопке, например : Public Class Form1 Dim x As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click x += 1 TextBox(x).Focus() End Sub End Class Все сделал : Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim n As Integer Dim l As Integer Dim s As Integer Do Until n = 4 n += 1 Dim tb As New TextBox tb.Size = New Size(55, 20) tb.Location = New Point(12 + l + s, 12) tb.MaxLength = 4 s = tb.Size.Width l = tb.Location.X AddHandler tb.TextChanged, AddressOf T Controls.Add(tb) Me.Size = New Size(tb.Location.X + 30 + 55, 78) Loop End Sub Dim v As TextBox Dim ti As Integer Private Sub T(ByVal sender As System.Object, ByVal e As System.EventArgs) If TypeOf sender Is TextBox Then v = sender If v.Text.Length = 4 Then ti = v.TabIndex ti += 1 Debug.Print(ti) Try nachalo: If TypeOf Controls.Item(ti) Is TextBox Then Debug.Print(ti) Controls.Item(ti).Focus() Debug.Print(Controls.Item(ti).Name) Else ti += 1 GoTo nachalo End If Catch Dim TB As TextBox For Each x As TextBox In Controls If TypeOf x Is TextBox Then TB = x TB.Enabled = False End If Next End Try End If End If End Sub End Class Не могу понять как обращаться к объектам из BackgroundWorker. Прочитал этот пост, но ничего путного не нашел. вот сам код : На форму кинул 3 TextBox'a, BackgroundWorker, ProgressBar, Кнопку Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click BackgroundWorker1.RunWorkerAsync() End Sub Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork If TextBox1.Text <> "" And TextBox2.Text <> "" Then If TextBox1.Text <> "0" Or TextBox2.Text <> "0" Then TextBox3.Text = Math.Round(Val(TextBox1.Text / TextBox2.Text / 60), 2) & " мин."На это сторке начинает "орать" : "Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "TextBox3" не из того потока, в котором он был создан." End If End If End Sub Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged ProgressBar1.Value = e.ProgressPercentage End Sub End Class |
Последний раз редактировалось Uzvern, 25-07-2008 в 19:42. Отправлено: 23:12, 24-07-2008 | #188 |
Старожил Сообщения: 161
|
Профиль | Сайт | Отправить PM | Цитировать Hash
А можно как-то получить обратный результат? А мне бы хотелось наоборот получить не "1377243374", а "qwertyuiopasdfgh" |
Отправлено: 23:52, 25-07-2008 | #189 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать |
Отправлено: 00:50, 26-07-2008 | #190 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|