2012-10-17 47 views
0

這是我想從DataGrid中的最大數量的DataGrid我如何顯示數字編號

id 

1 
2 
3A 
4 
5 
6A 
.. 
... 
10V1 

的內容。然後,我想 顯示下一個號碼(在這種情況下:11)在網格

期望輸出

id 

1 
2 
3A 
4 
5 
6A 
.. 
... 
10V1 
11 

我嘗試以下代碼旁邊的文本框:

textbox1.text = gridList.Rows(gridlist.RowCount() - 1).Cells(1).Value + 1 

它如果前面的行值完全是數字,則工作。但是,如果數值爲英數,我收到以下錯誤:

Conversion from string "10V1" to type 'Double' is not valid. 

有人可以幫我解決這個問題嗎?我在VB.Net

+0

如果這些值總是在格式''或'',或者甚至'<別的東西>',只是分裂上的第一個非數字字符的字符串,並添加1到。 – LittleBobbyTables

+0

數字總是從1到'Number of rows'(在這種情況下是10)?如果是這樣,你可以使用:'textbox1.text = gridList.RowCount()+ 1' – Msonic

+0

@Msonic,我不能取rowcount,因爲用戶可以刪除它們之間的行,那麼它會給出錯誤的號碼。 – Gopal

回答

5

尋找一個解決方案,您可能想看看Regex做到這一點(基於我從你的問題理解)

下面是關於這個related question

Regex.Match將返回匹配表達式的字符串部分...在您的情況下,您需要字符串中的第一個數字(嘗試"^\d+"作爲您的表達式,它會在開始時查找任何數字的序列你的字符串)。然後,您可以將結果字符串轉換爲int並將其添加1。

希望這會有所幫助!

編輯:這是關於regex expressions的更多信息。