2

我想知道这是否可能。我有一个列表 (lstTable),它与我试图用来自公共结构 (ELEM_DATA) 的信息填写的表格相同。我了解嵌套 with 语句如果在同一范围内将起作用,但我如何使用下面的示例 2 做到这一点:

示例 1:

With me.lstTable.Items(RECORD)
     .SubItems(1).text = ELEM_DATA(RECORD).name
     .SubItems(2).text = ELEM_DATA(RECORD).number
end with

示例 2:

With me.lstTable.Items(RECORD)
     With ELEM_DATA(RECORD)
     .SubItems(1).text = .name
     .SubItems(2).text = .number
     end with
end with

我不知道这是否可能,或者是否像将 (.name) 更改为其他内容一样简单。

4

2 回答 2

2

嵌套 With 语句有效(参见关于冲突的评论)。不幸的是,您不能在内部使用外部成员。但是由于您的外部 WITH 是一种引用类型,您可以按照您在评论中的建议使用局部变量来“别名”它。

Dim l = me.lstTable.Items(RECORD) ' requires 2008 and option infer
With ELEM_DATA(RECORD)
   l.SubItems(1).text = .name
End With

这是一个显示如何使用嵌套 WITH 语句的链接。

http://ideone.com/agjne

于 2011-07-12T00:02:04.900 回答
0
'EXAMPLE:

With New Object() {1, 2} 'With block 1
     Dim debug_1 As Object = .ToArray(0) 'Value 1 from object of block 1
         With New Object() {3, 4}  'With block 2
                 Dim debug_2 As Object = .ToArray(0)  'Value 3 from block 2
                 'How get 2 from block 1 of Object() {1, 2}?
                 '>>>
         End With
End With
'SOLUTION
With New Object() {1, 2}    
     With New Object() {3, 4}.Concat(.ToArray)
          Dim debug_3 As Object = .ToArray(3)  'got value 2 from outer WITH block 1 [Object() {1, 2}]
          '---//---//---
     End With
     '---//---//---
End With
于 2020-04-04T17:56:57.273 回答