Показать полную графическую версию : Visual Basic 2008
Страниц :
1
2
3
4
5
6
7
8
9
[
10]
11
12
13
14
15
16
17
18
Admiral, а если я добавлю ещё TextBox и при нажатии на кнопку, чтобы вылетало сообщение с текстом из текст бокса. Как это сделать?
Я так понимаю 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
Admiral, блин, точняк там же можно выводить из контрола. чет я совсем затупил. Спасибо, Чувак! :cool:
А можно как-то писать и использовать в VB dll?
С переходом на NET VB утратил базовую возможность писать ActiveX DLL.
Писать всё же можно, но среда аналогичной вкладки http://books.kulichki.net/data/basic/bas1/aspc1.gif Придётся немного помудрить, что б сделать всё же DLL Writing an ActiveX Control in VB.NET (http://www.vbdotnetheaven.com/UploadFile/dsandor/ActiveXControlInVBdotNET04112005081747AM/ActiveXControlInVBdotNET.aspx)
И их правильное использования.
DLL на VB.NET (точка входа) (http://bbs.vbstreets.ru/viewtopic.php?t=36849&sid=6e9011f9610df5025432796711acf39f)
Microsoft всё же надеется что среди богатых возможностей .NET FrameWorks найдутся классы которые прямо из коробки подойдут к проге, так что б смысла писать DLL у разработчиков не было.
В тоже время наибольший интерес представляют уже написанные DLL (не обязательно на NET). И в этой теме, когда необходимо было использовать WinApi функции, как раз использовались вызовы из системных библиотек.
Есть удобное средство позволяющие узнать, как вызывать функции из написанных DLL (тех что входят в базу проги, преимущественно системные, так что WinAPI) ApiViewer (en) (http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html)
Как можно добавить таймер на форму?
Dim Timer As New Timer
Controls.Add(Timer)
так не хочет.
Там вроде как-то по другому надо добавлять и не только с таймером так
Таймер, в отличие от VB6, помещается не на саму форму, а среда сама показывает, что он есть в проекте, но не добавляет его на форму.
Timer Class (http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx) (по ссылке пример)
По указанным причинам так нельзя, кроме таймера, MainMenu или ContextMenu так как эти контроли не входят в класс Control.ControlCollection. >> (http://msdn.microsoft.com/en-us/library/7e4daa9c.aspx)
Как можно перевсти фокус с одно текст бокста на другой, ну или на кнопку например.
Все. нашел : .Focus()
Как можно сделать обрашение к нужному текст боксу по кнопке, например :
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. Прочитал этот пост (http://forum.oszone.net/post-845221-159.html), но ничего путного не нашел.
вот сам код :
На форму кинул 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
Как работать с модулями?
Hash (http://forum.oszone.net/post-805106-67.html)
А можно как-то получить обратный результат?
"qwertyuiopasdfgh".GetHashCode = 1377243374
А мне бы хотелось наоборот получить не "1377243374", а "qwertyuiopasdfgh"
Хеш (Hash) - комбинация символов, полученная с помощью безвозвратных математических операций. Если б можно было, то все пароли зная их хешы, которые не скрывают, на раз бы раскрывались. >> (http://forum.oszone.net/thread-98315.html)
В Интернете есть сайты которые составляют хеш таблицы соответствий, что б легче было "вспоминать" пароли.
Admiral, нет. это то я знаю. Я просто думал, что именно вот эту операцию .GetHashCode можно как-то перекодировать и получить ответ. Теперь понял, что нет :)
Покажите примеры с Drug and Drop из Windows.
Пример по ссылке
http://www.vbforums.com/showthread.php?t=328593
принцип действия
http://savepic.ru/201693.gif
http://www.vb-helper.com/howto_net_drag_drop.html
http://www.java2s.com/Code/VB/GUI/Drag-Drop.htm
Your First Drag and Drop (http://www.developerfusion.co.uk/show/2692/2/)
Introduction to TreeView Drag and Drop (VB.NET) (http://www.codeproject.com/KB/cpp/TreeViewDragAndDrop.aspx)
Ну и по русски
Drag & Drop .NET (http://www.vbstreets.ru/VBdotNET/Upgrade/65981.aspx)
Как можно отфильтровать значение на определенные знаки, например : значение "1-2\3-4\5 необходимо отфильтровать по знакам " "-", "\" и т.п. , чтобы вернулось знаение "12345". Пробовал Trim, но чет он не помогает.
Пришлось писать функцию :
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Stri As String = "1-2\3-4\5"
MsgBox(RemChr(Stri, "-", "\"))
End
End Sub
Function RemChr(ByVal Text As String, ByVal ParamArray Chars() As String) As String
Dim EndString As String = Text
Dim TempString As String
For CI As Integer = 0 To Chars.Length - 1
For TI As Integer = 0 To EndString.Length - 1
If EndString.Substring(TI, 1) <> Chars(CI) Then
TempString &= EndString.Substring(TI, 1)
End If
Next
EndString = TempString
TempString = Nothing
Next
Return EndString
End Function
End Class
Trim не помогает, потому что он удаляет только пробелы в конце и начале. Используй класс регулярных выражений
Imports System.Text.RegularExpressions
Dim RegexObj as Regex = New Regex("regularexpression").
RegexObj.IsMatch("subject") - поиск
RegexObj.Replace("subject", "replacement") - замена
Дальнейшее см.
http://www.regular-expressions.info/dotnet.html
Как-то можно зашифровать свой проект, чтобы его нельзя было открыть например в Reflector'e?
Чтобы скрыть содержимое от не профессионалов, можно упаковать exe. Есть много упаковщиков типа UPX, ASPProtect и т.д. Я однако точно не знаю, работают ли они с .NET файлами. Если понадобится взломать, взломают и расшифруют, тупо сделают дамп из памяти.
См. http://madebits.com/netz/
Ключевое слово "exe NET packer"
Виртуальная машина на страже порядка (http://www.xakep.ru/magazine/xa/077/106/1.asp)
Виртуальная машина .NET
... Интерпретируемый язык этой платформы называется IL (сокращение от Intermediate Language) и значительно лучше реализован, чем бэйсиковский p-код. На данный момент существуют несколько декомпиляторов IL (в том числе и моя любимая Ida Pro – прим. Горл), которые без особого геморроя переведут exe-файл твоей программы в исходник, поэтому не защита программы получится, а наоборот. Хотя авторы компилятора тоже не лохи, они сделали две примочки, чтобы ухудшить жизнь крэкеру: >> (http://www.xakep.ru/magazine/xa/077/106/2.asp)
1.обфускатор IL кода, способный убрать всю лишнюю информацию из EXE. После такой обработки исследовать программу будет крайне сложно даже с декомпилятором.
2.программу для конвертирования IL кода в обычный native-код. Но по слухам эта примочка очень сильно глючит, и то, что твоя программа после конвертирования будет нормально работать, зависит лишь от фазы луны :).
Обе эти программки входят в состав Visual Studio последних версий, так что не забывай о них. >> (http://www.xakep.ru/magazine/xa/077/106/3.asp)
собственно про применение Reflector (http://www.xakep.ru/magazine/xs/057/016/3.asp) тоже сказано
Штурм зимнего .net'а (http://www.xakep.ru/magazine/xs/065/042/1.asp)
Недетское вскрытие .NET (http://www.xakep.ru/magazine/xs/066/044/1.asp)
.NET секретам Добыча исходного кода приложений (http://www.xakep.ru/magazine/xs/066/058/1.asp)
Карманное рукоприкладствоp->Подопытный № 1 (patch) (http://www.xakep.ru/magazine/xa/096/076/2.asp)
Uzvern - mrcnn прав, если понадобится код то взломают, так что сильно усложнять программу защитой тоже не стоит: ресурсов от этого она начинает брать больше.
Как можно включить CapsLock, чтобы это отразилось и на клавиатуре (загорелась/потухла лампочка).
SendKeys.SendWait("{CapsLock}")
заставляет её моргать, т.е. она включается и тут же выключается
В чем различие между : SendKeys.Send и SendKeys.SendWait
Как можно добавлять в программу параметры для запуска?
http://forums.msdn.microsoft.com/en-US/vbgeneral/thread/718c0860-ab1a-4a0a-98af-a101cdfecf4e/
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
Call keybd_event(System.Windows.Forms.Keys.CapsLock, &H14, 1, 0) 'включить
Call keybd_event(System.Windows.Forms.Keys.CapsLock, &H14, 3, 0) 'отключить (или наоборот)
Как можно добавлять в программу параметры для запуска?
http://vbcity.com/forums/topic.asp?tid=65476
http://www.devx.com/dotnet/Article/10115
http://www.devx.com/dotnet/Article/10115/0/page/2 (там еще несколько страниц)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC