2015-09-04 69 views
-1

我有一個列表視圖有數字作爲它的項目。如何獲取listview中的項目索引?

ID | AT 
1  5 
2  3 
3  7 
4  10 
5  6 

現在我想要搜索一個項目並獲取其索引。例如,我有一個文本框,並在其中放置「4」。它會顯示ID = 4的索引,這應該是3.如果我搜索「1」,它應該是0,依此類推。

我已經試過

list = lvNPtable.Items(lvNPtable.Items.IndexOf(textbox1.text)) 
Msgbox(list) 

,但不起作用。任何人都有一個想法如何做到這一點?

+0

'昏暗NDX = myLV.Items.Find(TextBox1.Text,真)如果你不想搜索子項 – Plutonix

+0

錯誤,在MSGBOX – KPA

回答

2

這應該爲你工作:

Dim intIndex As Integer = lvNPtable.FindItemWithText(TextBox1.Text).Index 

ListViewFindItemWithText(String)方法將返回一個ListViewItem,您可以使用的.Index屬性來獲取項目本身的指標值,如上圖所示。

由於TimSchmelter在評論中指出,還有你可以在搜索時設置其他參數,通過函數重載:

Dim intIndex As Integer = ListView1.FindItemWithText(TextBox1.Text, False, 0, False).Index 

第一個參數是你的,第二個參數搜索什麼是搜索其他列表視圖中的列,第三個是要從中搜索的起始索引,第四個是如果您允許部分值返回匹配項。

+0

感謝把NDX時提示無法轉換爲字符串'使用假的!它的工作原理:D – KPA

+0

值得注意的是,OP應該使用不同的過載,如[this](https://msdn.microsoft.com/en-us/library/x03e4732(v = vs.110).aspx)。否則,允許部分匹配或在不同列中匹配。 –

+0

@TimSchmelter好點。我已更新我的答案以反映重載功能。 – RianBattle

相關問題