2016-04-05 28 views
0

için bu görünümü ile bir çok satırlı metin kutusu vardır:satırlı metin kutusu dataGridView

A#B 
C# 
D#E 

ve böyle bir şey benim datagridview doldurmak istiyorum:

Yani
_________ 
|A|BC|D|E| 

, ben istiyorum "#" olduğunda bölünmüş olmakla birlikte, datagridview numaralı telefondan çok satırlı hücreler istemiyorum. ... Teşekkür

Dim sup() As String = TextBox1.Text.Split(vbCr, vbLf, vbTab, " "c, "#") 
DataGridView1.Rows.Add(sup(0), sup(1), sup(2),sup(3)) 

ama buna sınırları outta gittiğini söylüyor:

Bu kodu çalıştı!

düzenleme: "Aralık dışı istisna dışında" Hata.

i microsoft word için metin kutusu değerleri yapıştırmak onlar böyle gelir: textbox to word

+0

'Rows.Add()' satırında bir kesme noktası yerleştirip diziyi incelediniz mi? –

+0

Kesme noktası ile ne demek istiyorsun? – noidea

+0

[Basit bir kesme noktası nasıl ayarlanır] (https://msdn.microsoft.com/en-us/library/k80ex6de (v = vs.100) .aspx) --- [Kesme noktalarını kullanma] (https: // msdn .microsoft.com/en-us/library/5557y8b4.aspx) --- [Kesme noktaları ve hata ayıklama araçları] (http://www.homeandlearn.co.uk/NET/nets5p6.html) –

cevap

0
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick 
    If DataGridView1.RowCount = 1 Then DataGridView1.Rows.Clear() 
    Call dgvstuff() 
    Timer1.Stop() 
End Sub 


Sub dgvstuff() 
    Dim sup2 = TextBox2.Text.Replace("#", "").Replace(">", " "c) 
    Dim sup() = sup2.Split(" "c, "#", vbCrLf, vbTab) 

    With DataGridView1 
     .Rows(0).Cells(0).Value = sup(1).ToString 
     .Rows(0).Cells(1).Value = sup(7).ToString 
     .Rows(0).Cells(3).Value = sup(4).ToString 
    End With 
End Sub 

Gerçekten bilmiyorum test edildikten sonra güncellendi. Herkes daha iyi/daha temiz bir yol biliyor mu? Tks

1

Eğer 3 # 's ile metin kutusu bölme olacak eminseniz, böyle bir şey kullanabilirsiniz 3 sütun oluşturduktan sonra

Dim myStr As String 
Dim substring As String 
Dim strArray() As String 
Dim columnInt as Integer = 0 

myStr = Textbox1.Text 
strArray = myStr.Split("#") 

For i = 0 to strArray.Length - 1 
Datagridview.Rows(0).Cells(columnInt).Value = strArray(i) 
columnInt += 1 
next 

Ben bu veri tam olarak görünmesini istiyorum nasıl oldukça emin değilim gibi sizin DataGridView, ayrıca 3. için ilk önce bu kodu ekleyin daha da sütunların sayısı daha büyük olmalıdır beyan gerekebilir Bildirim:

For i = 0 to strArray.Length - 1 
DataGridView.Columns.Add("YourText","YourText") 
Next 

Test edilmemiş ama sizi doğru noktaya getirmelidir! * Düzenleme: ancak bu gibi işleri niçin

+0

Ben de aynı hatayı yaşıyorum .. "Endeks Aralık Dışı Özel Durum". – noidea

+0

sorumu güncelledi. – noidea

+0

Birkaç değişiklik yaptım, ancak bu testten sonra mükemmel bir şekilde çalışıyor. Unutmayın: "DatagridView.Columns.add() bölümünde sütunlarınızı adlandırmak istediğinizden emin değilim, bu sütunların nasıl görüntülenmesini istediğinizi ekleyin (İlk olarak o Sütuna erişmek için Ad olarak, İkinci olarak gösterilenin adı) Kullanıcıya 1) Şimdi sadece 1 sıra veriye ihtiyacınız olduğunu varsayalım. –