Я думаю, я понимаю, что вы пытаетесь сделать, чтобы объявить объект строкой ...
Для этого вам потребуется специальная функция, которая возвращает тип объекта, который вы ищете ...
Вам нужно будет пройти через каждый элемент управления и проверить имя элемента управления в качестве сравнения, например. Если oControl.Name.ToString = sString затем Return oControl
Пример
' A function to return a Control by the Control's name...
Public Function GetControlByName(ByVal oForm As Form, ByVal sName As String) As Control
Dim cReturn As New Control
Dim ctrl As Control
For Each ctrl In oForm.Controls
cReturn = ctrl
If ctrl.Name.ToString = sName Then
Return ctrl ' this is what we want!
End If
Next
Return cReturn
End Function
' Example Usage
Dim oButton As Button = GetControlByName(Me, "Button44")
If oButton.Name.ToString = "Button44" Then
MessageBox.Show("I have found your Button!")
Else
MessageBox.Show("Your button was NOT Found!")
End If
Очевидно, есть место для ошибки с помощью этой функции, потому что если зЫат не найден, то он возвращает последний найденный Ctrl, поэтому , вам необходимо убедиться, что найденный вами контроль действительно найден с помощью инструкции If, как указано в примере выше ...
Кроме того, он может не проходить через элементы управления внутри контейнеров, меню и т. д., но я «Не уверен в этом, поэтому вам нужно будет проверить, чтобы у него не было этой проблемы ...
(В тексте, скорее всего, будет использоваться Me, но я могу назвать имя формы, которую вы ищете, если вы используете код вне формы, которую вы ищете в форме с помощью функции.)
НАКОНЕЦ, чтобы ответить на ваш вопрос, вам нужно будет изменить управление изображения и набор CReturn как новое изображение, а затем использовать Return ctrl.BackgroundImage (и т.д.), чтобы вернуть изображение ..
вы можете Не ожидайте, что 'String' будет' Image'. – OneFineDay
Да, это правильно, но String может быть именем управления изображением. – Djura