Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Visual Basic .NET Как перезапустить приложение (рестарт)? https://www.cyberforum.ru/vb-net/thread343179.html
Подскажите пожалуйста как перезапустить приложение?
Почти прозрачная форма с непрозрачными на ней элементами управления Visual Basic .NET
Здравствуйте. Подскажите можно ли в VS сделать полностью прозрачную форму, такую как на изображении? Я думаю что средствами VB такого не сделать.
Как узнать внешний IP другого компьютера Visual Basic .NET
Здравствуйте всем! Если сможете - помогите, пожалуйста. Как можно узнать IP адрес другого компьютера? Причем этот IP высылался мне на мою электронную почту или в отдельный текстовый документ на...
Visual Basic .NET Как сделать поиск определенного слова по базе и вывести все данные в TextBox? Как сделать поиск определенного слова (допустим возьмем из текстбокса) по базе и вывести все данные в текстбокс. Т.е. если ищем слово "Москва", то нам приходят данные со всей строки где есть "Москва" https://www.cyberforum.ru/vb-net/thread342988.html
Visual Basic .NET Хранение в БД графических файлов https://www.cyberforum.ru/vb-net/thread342987.html
В ячейках Access можно хранить несколько картинок(файлов) в одной ячейке. Вопрос - как мне вытащить нужную(к примеру 2-ую картинку из 3 строки 2 столбца) ? И как мне вывести картинку к примеру в...
Visual Basic .NET Работа с INI-файлами
Какими средствами и как можно работать с ини файлами?
Visual Basic .NET Как считать из БД несколько ячеек сразу?
Как мне считать(ну и вывести к примеру в текстбокс) информацию из 5 строки или, например, 3 столбца полностью все ячейки
Visual Basic .NET Работа с базой данных Access: Считать информацию с определенной ячейки Я прочитал все разделы Лукина о БД... и не понял. Ничего не понял, как то оно все расплывчато (я ничего не курил, правда:D) Вообщем я так и не понял как работать с БД. Все что я освоил и уяснил это... https://www.cyberforum.ru/vb-net/thread342971.html
Visual Basic .NET Сворачивание формы без бордюра по клике на ее иконку в панели задач https://www.cyberforum.ru/vb-net/thread342940.html
Здравствуйте, подскажите как сворачивать форму по клику по иконке на панели задач, если моя форма Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None так как сейчас по нажатию на иконку на...
Visual Basic .NET Две пары горячих клавиш в неактивном приложении в Этой теме обсуждалось как сделать горячие клавиши для приложения. Получилось в итоге, но получилось лишь с одной парой. А вот как сделать чтобы приожение не имело фокус и можно было бы одной... https://www.cyberforum.ru/vb-net/thread342909.html
ovva
3035 / 2495 / 615
Регистрация: 02.02.2013
Сообщений: 2,417
Записей в блоге: 2
15.12.2019, 16:13 0

Visual Basic .NET FAQ. Готовые решения, полезные коды

15.12.2019, 16:13. Просмотров 338254. Ответов 211
Метки (Все метки)

Ответ

Пример, переведенного на vb.net, диалогового окна выбора папок из
https://stackoverflow.com/questions/...86992#15386992
PS. Хотя можно было бы и не переводить, а использовать как есть.
Кликните здесь для просмотра всего текста
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Imports System.Reflection
Imports System.Windows.Forms
Namespace FSD
    Public Class FolderSelectDialog
        Private _initialDirectory As String
        Private _title As String
        Private _fileName As String = ""
        Public Property InitialDirectory As String
            Get
                Return If(String.IsNullOrEmpty(_initialDirectory), Environment.CurrentDirectory, _initialDirectory)
            End Get
            Set(ByVal value As String)
                _initialDirectory = value
            End Set
        End Property
 
        Public Property Title As String
            Get
                Return If(_title, "Select a folder")
            End Get
            Set(ByVal value As String)
                _title = value
            End Set
        End Property
 
        Public ReadOnly Property FileName As String
            Get
                Return _fileName
            End Get
        End Property
 
        Public Function Show() As Boolean
            Return Show(IntPtr.Zero)
        End Function
 
        Public Function Show(ByVal hWndOwner As IntPtr) As Boolean
            Dim result = If(Environment.OSVersion.Version.Major >= 6, VistaDialog.Show(hWndOwner, InitialDirectory, Title), ShowXpDialog(hWndOwner, InitialDirectory, Title))
            _fileName = result.FileName
            Return result.Result
        End Function
 
        Private Structure ShowDialogResult
            Public Property Result As Boolean
            Public Property FileName As String
        End Structure
 
        Private Shared Function ShowXpDialog(ByVal ownerHandle As IntPtr, ByVal initialDirectory As String, ByVal title As String) As ShowDialogResult
            Dim folderBrowserDialog = New FolderBrowserDialog With {
                .Description = title,
                .SelectedPath = initialDirectory,
                .ShowNewFolderButton = False
            }
            Dim dialogResult = New ShowDialogResult()
            If folderBrowserDialog.ShowDialog(New WindowWrapper(ownerHandle)) = Windows.Forms.DialogResult.OK Then
                dialogResult.Result = True
                dialogResult.FileName = folderBrowserDialog.SelectedPath
            End If
            Return dialogResult
        End Function
 
        Private Class VistaDialog
            Private Const c_foldersFilter As String = "Folders|" & vbLf
            Private Const c_flags As BindingFlags = BindingFlags.Instance Or BindingFlags.[Public] Or BindingFlags.NonPublic
            Private Shared ReadOnly s_windowsFormsAssembly As Assembly = GetType(FileDialog).Assembly
            Private Shared ReadOnly s_iFileDialogType As Type = s_windowsFormsAssembly.[GetType]("System.Windows.Forms.FileDialogNative+IFileDialog")
            Private Shared ReadOnly s_createVistaDialogMethodInfo As MethodInfo = GetType(OpenFileDialog).GetMethod("CreateVistaDialog", c_flags)
            Private Shared ReadOnly s_onBeforeVistaDialogMethodInfo As MethodInfo = GetType(OpenFileDialog).GetMethod("OnBeforeVistaDialog", c_flags)
            Private Shared ReadOnly s_getOptionsMethodInfo As MethodInfo = GetType(FileDialog).GetMethod("GetOptions", c_flags)
            Private Shared ReadOnly s_setOptionsMethodInfo As MethodInfo = s_iFileDialogType.GetMethod("SetOptions", c_flags)
            Private Shared ReadOnly s_fosPickFoldersBitFlag As UInteger = CUInt(s_windowsFormsAssembly.[GetType]("System.Windows.Forms.FileDialogNative+FOS").GetField("FOS_PICKFOLDERS").GetValue(Nothing))
            Private Shared ReadOnly s_vistaDialogEventsConstructorInfo As ConstructorInfo = s_windowsFormsAssembly.[GetType]("System.Windows.Forms.FileDialog+VistaDialogEvents").GetConstructor(c_flags, Nothing, {GetType(FileDialog)}, Nothing)
            Private Shared ReadOnly s_adviseMethodInfo As MethodInfo = s_iFileDialogType.GetMethod("Advise")
            Private Shared ReadOnly s_unAdviseMethodInfo As MethodInfo = s_iFileDialogType.GetMethod("Unadvise")
            Private Shared ReadOnly s_showMethodInfo As MethodInfo = s_iFileDialogType.GetMethod("Show")
 
            Shared Function Show(ByVal ownerHandle As IntPtr, ByVal initialDirectory As String, ByVal title As String) As ShowDialogResult
                Dim openFileDialog = New OpenFileDialog With {
                    .AddExtension = False,
                    .CheckFileExists = False,
                    .DereferenceLinks = True,
                    .Filter = c_foldersFilter,
                    .InitialDirectory = initialDirectory,
                    .Multiselect = False,
                    .Title = title
                }
                Dim iFileDialog = s_createVistaDialogMethodInfo.Invoke(openFileDialog, New Object() {})
                s_onBeforeVistaDialogMethodInfo.Invoke(openFileDialog, {iFileDialog})
                s_setOptionsMethodInfo.Invoke(iFileDialog, New Object() {CUInt(s_getOptionsMethodInfo.Invoke(openFileDialog, New Object() {})) Or s_fosPickFoldersBitFlag})
                Dim adviseParametersWithOutputConnectionToken = {s_vistaDialogEventsConstructorInfo.Invoke(New Object() {openFileDialog}), 0UI}
                s_adviseMethodInfo.Invoke(iFileDialog, adviseParametersWithOutputConnectionToken)
                Try
                    Dim retVal As Integer = CInt(s_showMethodInfo.Invoke(iFileDialog, New Object() {ownerHandle}))
                    Return New ShowDialogResult With {
                        .Result = retVal = 0,
                        .FileName = openFileDialog.FileName
                    }
                Finally
                    s_unAdviseMethodInfo.Invoke(iFileDialog, {adviseParametersWithOutputConnectionToken(1)})
                End Try
            End Function
        End Class
 
        Private Class WindowWrapper
            Implements IWin32Window
            Private ReadOnly _handle As IntPtr
 
            Public Sub New(ByVal handle As IntPtr)
                _handle = handle
            End Sub
 
            Public ReadOnly Property Handle As IntPtr Implements IWin32Window.Handle
                Get
                    Return _handle
                End Get
            End Property
        End Class
    End Class
End Namespace

Применение
vb.net
1
2
3
4
5
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim dialog = New FolderSelectDialog With {.InitialDirectory = "C:\", .Title = "Выбор папки"}
    dialog.Show(Handle)
    Label1.Text = dialog.FileName
End Sub


Вернуться к обсуждению:
Visual Basic .NET FAQ. Готовые решения, полезные коды
2
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2019, 16:13
Готовые ответы и решения:

Visual Basic .Net и Visual Basic 6.0 - В чём разница
В общем возник вопрос: Visual Bisic.Net и Visual Basic - это два разных языка, или же .NET версия...

Visual Basic.Net и Visual Studio 2013 - в чем разница?
Visual Basic.Net и Visual Studio 2013 - в чем разница? Или это одно и тоже, просто называются по...

Visual Basic .NET vs Visual FoxPro 9.0 в рамках задач реляционной модели данных
Очень хочется обсудить следующую тему. Поставлена задача - написать некоторую программу...

Арктангенс в Visual Basic .NET?
Здравствуйте всем! Как? Как его получить? В классе Math его нет......

Исходники на Visual Basic .NET
Кто-то читает книжки. Кто-то ищет информацию в Google... А кто-то набирается знаний, разбирая чужие...

211
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.