我不确定这本身是一个“答案”,但它确实说明了另一个需要在With
.
这是一个使用“bare With”的代码示例(这就是我所说的,无论如何):
With New frmMySubForm
.lblLinkLabel.Links.Add(New LinkLabel.Link With {.Name = "link", .LinkData = "someUrl", .Start = .lblLinkLabel.Text.IndexOf("link"), .Length = "link".Length})
...
End With
但实际上您无法编写该代码,因为在术语.Start = .lblLinkLabel.Text.IndexOf("link")
中编译器期望任何以开头的内容都.
成为 LinkLabel.Link 的成员,但事实.lblLinkLabel
并非如此。
我认为,最好的办法是能够编写如下内容:
With New frmMySubForm
.lblLinkLabel.Links.Add(New LinkLabel.Link With {.Name = "link", .LinkData = "someUrl", .Start = Me.lblLinkLabel.Text.IndexOf("link"), .Length = "link".Length})
...
End With
在Me
这个范围内被认为是New frmMySubForm
。
是的,我意识到我很挑剔,我可以很容易地分配一个变量等。但是示例表单是我出于偏好而经常使用的东西。