2013-10-04 102 views
1

Im new at Vb.net 2010. im using vb 6.0。任何人都可以幫助我將此代碼轉換爲vb.net 2010?vb.6.0 lvwtag to vb.net 2010

Dim SkeyBracket as ingeter 
Dim xList As ListItem 
If sKeyBracket <> 0 Then 
    Set xList = lvBracket.FindItem(CStr(sKeyBracket), lvwTag) 
Else 
    Set xList = lvBracket.ListItems(1) 
End If 

回答

0

根據這個MSDN Link它討論了VBA,但VB6非常相似),並在文檔尋找VB6 ListView.FindItem和.net ListViewFindItemWithText方法,你需要在上下文更密切地關注你的VB6代碼,以確定最合適的。

設置關鍵字。在VBA中,必須使用Set關鍵字來區分對象的賦值和賦值對象的默認屬性。 因爲Visual Basic .NET不支持默認屬性,所以不需要設置關鍵字並且不再支持

所以你的情況我會做這樣的事情:

Dim SkeyBracket as integer 
Dim xList As ListViewItem 

If sKeyBracket <> 0 Then 
    xList = lvBracket.FindItem(CStr(sKeyBracket), lvwTag) 
Else 
    xList = lvBracket.ListItems(1) 
End If 
+0

是的,我知道。但我的問題是。我可以在vb.net 2010 vb6.0中使用什麼是「lvwtag」 – Umar

+1

沒有看到上下文我不知道什麼lvwtag或確切地你正在試圖找到。在.net中有一個ListViewItem,它與VB6中的ListItem不一樣。您將需要比較文檔以確定它。我會看看我剛剛添加的鏈接,看它是否有任何幫助 –

+0

@MarkHall:lvwtag是一個枚舉,它用於告訴vb6 listview FindItem方法,該搜索應該基於標記完成。 – jmoreno

0

你的運氣了,在.net中的列表視圖不具有等效的方法。好消息是編寫你自己的代碼比較簡單。如果你只在一個地方使用它,你可以使用LINQ來做到這一點,而不必聲明你自己的方法,otoh如果你使用它很多,然後一個擴展方法將允許你「添加」到列表視圖類。

雖然ListView class不包含由一個列表項的Tag屬性搜索中的FindItem方法或等效的方法,這是很容易做到使用LINQ(演員用來使列表項集合一個IEnumerable)

lvBracket.Items.Cast(Of ListItem).FirstOrDefault(
       Function(li) Object.Equals(li.Tag, CStr(sKeyBracket)) 
相當於

或使用VB's null coalesence operator(一個叫以2個參數):

xList = If(lvBracket.Items.Cast(Of ListItem).FirstOrDefault(
       Function(li) Object.Equals(li.Tag, CStr(sKeyBracket)), 
      lvBracket.Items(1)) 

雖然我真的懷疑你的意思lvBracket.Items(0) ...

如果你想讓它作爲一種方法,那麼extension method是很容易的寫:

Public Function FindByTag(this as ListView, tagStr as String) As ListItem 
    Return this.Items.Cast(Of ListItem).FirstOrDefault(
       Function(li) CStr(li.Tag) = tagStr) 
End Function 

,並作爲lvBracket.FindByTag(CStr(sKeyBracket))