2014-05-11 58 views
0

嗨我是編程新手,但學得很快,並且我的大部分小應用都已經算出來了。但我現在正在努力的部分已經讓我受益匪淺。 我有一個表格,其中填寫了一些文本框後添加爲我的datagridview新行。 但是,某些文本框連接在一起,如First,Middle和Last的名稱框,它們以Last,First Middle的格式添加到一個單元格中,因爲將導出的.csv用於數據集變量Photoshop,並且全名有一個單獨的文本行。 我有一些使用stringsplit的代碼,它實際上起作用,除了它始終從第一行加載單元格數據,即使我點擊不同的行並添加了不使用stringsplit的數據。代碼 繼承人部分:Datagridview row to text boxes string split問題

Dim i As Integer 
Dim line As String = DataGridView1.Item(1, i).Value 
Dim separators() As String = {",", " "} 
Dim name() As String 
i = DataGridView1.CurrentRow.Index 
name = line.Split(separators, StringSplitOptions.RemoveEmptyEntries) 
txtOrder.Text = DataGridView1.Item(0, i).Value 
txtFirst.Text = name(1) 
txtMiddle.Text = name(2) 
txtLast.Text = name(0) 
txtAddress.Text = DataGridView1.Item(2, i).Value 

所以說,我在我的DataGridView兩行,分別代表不同的順序有不同的數據。當我點擊第二行時,它會爲txtOrder.text和txtAddress.text加載正確的值,但它會將第一行的第一個,中間和最後一個名稱加載到三個文本框(儘管它正確地分割了字符串並將其正確添加到文本框中)。

我希望我能夠解釋這個問題,這是我第一篇關於編程的問題。 希望有人能幫助我! 謝謝 泰勒

編輯:所以當然,所有的搜索後,我做了這是一個簡單的修復。繼承人修改後的代碼,將「i = datagridview1.currentrow.index」移到右下「Dim i as Integer」。部分學習過程我猜!大聲笑。

Dim i As Integer 
i = DataGridView1.CurrentRow.Index 

Dim line As String = DataGridView1.Item(1, i).Value 
Dim separators() As String = {",", " "} 
Dim name() As String 

name = line.Split(separators, StringSplitOptions.RemoveEmptyEntries) 

txtOrder.Text = DataGridView1.Item(0, i).Value 
txtFirst.Text = name(1) 
txtMiddle.Text = name(2) 
txtLast.Text = name(0) 
txtAddress.Text = DataGridView1.Item(2, i).Value 
+0

VB將讓你聲明和初始化在一行:Dim i As Integer = DataGridView1.CurrentRow.Index' – Plutonix

回答

0

我們的代碼沒有上下文比如它是否是點擊事件等,你的問題是難以遵循,但這似乎是錯誤的:

Dim i As Integer 
Dim line As String = DataGridView1.Item(1, i).Value 

i將永遠是零 - 你剛纔宣佈它的前行,所以它總是會設置line到第一行(行(0))

i = DataGridView1.CurrentRow.Index 

這可能不是你想要的任何根據w ^在這裏,這是,如果它是一個循環等

+0

它是在一個私人小組從Private Sub調用dtgRecords_CellClick。我其實剛剛解決了我的問題。我將「i = datagridview1.currentrow.index」移動到「Dim i as integer」之下,並且在「Dim line as string ...」之上。 – user3626481

+0

好吧,如果你想讓這個動作發生在包含單擊單元格的行上,最好將這個參數一起傳遞。 – Plutonix