Как вы сказали нам сейчас, формы Form1
и Form2
находятся в подчиненных элементах управления страницами управления регистрами.
Таким образом, вы не можете ссылаться на них Forms("Form2")
, потому что они не являются «самостоятельными» формами.
Вместо этого вы должны знать имя каждого элемента управления подчиненной формы , который содержит такую подчиненную форму. Имя формы, которая хранится в каждом из этих элементов управления, не имеет значения вообще.
Поэтому я предлагаю вам присвоить этим элементам управления подчиненной формы то же имя, что и содержащей странице, но добавить статический суффикс, например SubFormControl
(или любой другой суффикс, который вам нравится).
Так, например, элемент управления подчиненной формы, который находится на странице pgeVerbMassnahmen
, должен называться pgeVerbMassnahmenSubFormControl
.
Затем вы можете ссылаться на элементы управления подчиненной формы по имени страницы и статическому суффиксу.
Так что я думаю, что это то, что вам нужно:
Объявите переменную формы в Form_GUI
(если вы просто ссылаетесь на переменную из кода внутри Form_GUI
, она может быть закрытой): [ 1122]
Private p_FrmZuordnung As Form
Я ожидаю, что p_ErmittleFrmZuordnung
также находится в форме Form_GUI
, поэтому вы можете использовать Me
для ссылки на Form_GUI
:
Private Sub p_ErmittleFrmZuordnung()
Const SUFFIX As String = "SubFormControl"
Dim currentPagename As String
currentPagename = Me("RegisterStr1").Pages(Me("RegisterStr1").Value).Name
Select Case currentPagename
Case "pgeVerbMassnahmen"
Set p_FrmZuordnung = Me(currentPagename & SUFFIX).Form
Case "pgeKVPMassnahmen"
Set p_FrmZuordnung = Me(currentPagename & SUFFIX).Form
Case Else
p_FrmZuordnung = Nothing
End Select
End Sub
Редактировать:
]Если все страницы содержат элемент управления подчиненной формы, его можно сократить:
Private Sub p_ErmittleFrmZuordnung()
Const SUFFIX As String = "SubFormControl"
Set p_FrmZuordnung = Me(Me("RegisterStr1").Pages(Me("RegisterStr1").Value).Name & SUFFIX).Form
End Sub
Существует сообщение в блоге от Mariya Atanasova, которая показывает, как можно фальсифицировать его - в основном необходимо поместить каталог на URL.
Я подозреваю, что можно быть более обеспечены со специализированной библиотекой FTP, хотя - тот, который не пытается вызвать все в WebRequest способ сделать вещи. Я лично не пользовался никакими сторонними библиотеками для этого, но поиск "библиотеки FTP.NET" находит много кандидатов.
Многие клиенты спрашивают нас, как они могут использовать команду CWD с нашим FtpWebRequest.
Ответ: Вы не можете использовать команду непосредственно, но можно изменить параметр uri для достижения того же результата.
Скажем, Вы используете следующий формат:
String uri = "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl";
FtpWebRequest Request = (FtpWebRequest)WebRequest.Create(uri);
Request.Method = "LIST";
Вышеупомянутый пример принесет Вам к каталогу Вашего пользователя и перечислит все содержание там. Теперь скажем, Вы хотите пойти 2 каталога назад и перечислить содержание там (если у Вашего пользователя есть полномочия сделать это). Вы закрываете предыдущий FtpWebRequest и выпускаете новый с этим uri
uri = "ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/%2E%2E/%2E%2E";
Это эквивалентно входу в систему с учетными данными Вашего пользователя и затем использованию
cd ../../
Примечание: при попытке использовать
”..”
непосредственно не выходя из них класс uri разделит их, таким образом,"ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/../.."
эквивалентно"ftp://myFtpUserName:myFtpUserPassword@myFtpUrl/"
Теперь скажем, Вы хотите перейти к каталогу другого пользователя, который является одним уровнем выше корня. Если Вы не указываете имя пользователя и пароль, это эквивалентно входу в систему как анонимный пользователь. Затем Вы выпускаете новое
FtpWebRequest
со следующим uri
"ftp://myFtpUrl/%2F/anotherUserDir"
Это эквивалентно входу в систему как анонимный и затем делающий
Cd /
cd anotherUserDirectory