Можно ли сделать что-то подобное:

Dim ThisThing as ThisThingToolStripMenuItem.Text

Так что позже в коде я могу просто сделать ThisThing = "something"?

1
Joe 5 Мар 2011 в 05:24

2 ответа

Лучший ответ

Нет, это не сработает, но вы можете назначить ThisThingToolStripMenuItem переменной с меньшим именем, но вам все равно придется ссылаться на нее как на ThisThing.Text.

Вы также можете использовать делегат, определенный с помощью лямбда-выражения:

Action<string> setter = (string s) => ThisThingToolStripMenuItem.Text = s;

...

setter("whatever");

В VB.Net:

Dim Setter = Sub(s) ThisThingToolStripMenuItem.Text = s

...

Setter("whatever")
1
Scott Whitlock 5 Мар 2011 в 05:39
Это то, что я хотел, спасибо. Пытался внести некоторую аккуратность в свой код.
 – 
Joe
5 Мар 2011 в 06:05
С другой стороны, когда я выдаю это в form1, он говорит, что Expression не является методом, когда я использую его в подпрограмме.
 – 
Joe
5 Мар 2011 в 06:10
R - можете ли вы опубликовать свой код в качестве редактирования вашего вопроса? Кроме того, какую версию VB.Net вы используете?
 – 
Scott Whitlock
5 Мар 2011 в 22:17

Переменная должна быть типом, поэтому лучшее, что вы можете сделать, это что-то вроде этого ...

Dim objYourShorterName As New ToolStripMenuItem

'Where 1 is the particular index of the ToolStripMenuItem you wish
'the variable to reference.
objYourShorterName = ToolStrip1.Items(1)

'You still have to use the Text property.
objYourShorterName.Text = "Blah"

Вы также можете написать подпроцедуру, которая сделает это за вас.

Private Sub ShorterName(ByVal strText As String)

   ToolStrip1.Items(1).Text = strText

End Sub

Потом поменять текст ...

ShorterName("New Text")
0
NoAlias 5 Мар 2011 в 05:45