DataGridView vullen door Textbox

Status
Niet open voor verdere reacties.

Gielleke

Gebruiker
Lid geworden
9 feb 2009
Berichten
110
Beste Helpmij leden,

Graag wil ik beroep doen op jullie kennis.:confused:

Ik heb al op meerdere informatie gelezen over het vullen van een DatagridView.
Dit was meestal in samen werking met een grote database, enz

Maar ik heb nog nergens gevonden hoe men een text uit een simpele Textbox kan wegschrijven naar een DataGridView. Kan iemand mij hier iets meer over vertellen?

Ik heb een afbeelding bij gedaan voor meer duidelijkheid.:p

Alvast bedankt.
Mvg,
 

Bijlagen

  • Voorbeeld DataGridView.jpg
    Voorbeeld DataGridView.jpg
    14,7 KB · Weergaven: 115
bedoel je zoiets?
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim totalrows As Integer = DataGridView1.RowCount - 1
        DataGridView1.Item(0, totalrows).Value = TextBox1.Text
        DataGridView1.Item(1, totalrows).Value = TextBox2.Text

    End Sub
 
Beste Pizara,

Bedankt vor jou snelle reactie.

Heb zonet kennis kunnen maken met jou code, en sta versteld van de eenvoudige manier.:D Ik had gedacht dat dit veel moeilijker zou zijn.

Wat ik opmerk aan de code:

Zorda de 2 Textboxen zijn weggeschreven naar de DataGridView dat de volgende waarde in de textboxen niet wordt weggeschreven naar de volgende regel?

Bij vragen hoor ik het graag.
Alvast bedankt.

Mvg,
 
Omdat ik in het voorbeeld ook geen row toevoeg, daar vroeg je ook niet om .
Maar als je een row toevoegd en daarna de gegevens in de één na onderste regel invult (rowcount -2) dan werkt het prima.

Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        DataGridView1.Rows.Add()
        Dim totalrows As Integer = DataGridView1.RowCount - 2

        DataGridView1.Item(0, totalrows).Value = TextBox1.Text
        DataGridView1.Item(1, totalrows).Value = TextBox2.Text

    End Sub

nog een kleine aanvulling , het is rowcount -2 omdat elke count property begint te tellen bij 1 , en de datagridview items beginnen bij 0. (de rowcount is dus altijd 1 méér dan de positie in je datagridview, en de één na onderste item is dus -2)
 
Laatst bewerkt:
Beste Pizara,

Bedankt voor jou reactie.
Je bent echt super!!

Om alles goed te doen verlopen zal ik wel nog mijn variable moeten bij schrijven in de code van de nodige Textboxen.:)

Graag wil ik van dit moment gebruik maken om nog enkel vragen te stellen aan jou over een datagridview. Als dat mag?

* Ik zou héél graag in de toekomst willen als ik met mijn muis in één van de cellen aanklik dat telkens de volledige rij geselecteerd wordt. Is dat mogelijk via de standaard eigenschappen?

* Graag zou ik het ook mogelijk maken als de volledige rij geselecteerd is of er een manier bestaat om deze te verwijderen?

Graag vermeld ik even dat de kolom "RowHeader" niet aanwezig zal zijn in mijn programma!!

Alvast super bedankt.
Bij vragen hoor ik het graag.

Met vriendelijke groeten.
 
Geen dank hoor,

om alle vragen in 1x van jouw te beantwoorden, kan je met het event 'cellclick' in 1 regel code de gehele rij selecteren. zie onderstaande code.

Code:
    Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        DataGridView1.Rows(e.RowIndex).Selected = True
    End Sub

daarnaast , als je je cell met de muis hebt geselecteerd en je drukt op delete (standaard optie in DataGridView) verwijder je de complete geselecteerde cellen.
 
Beste Pizara,

Bedankt voor jou reactie.:thumb:

Allemaal super werk van jou.
Mag ik op de laaste reactie van jou toch nog even dieper op in gaan?

Echt niet om moeilijk te doen hoor.:D
Maar als ik het event "Cellclick" gebruik is het dat hij altijd nog eerst de cel apart selecteerd en derna de volledige regel pas. En omwile dat ik in een oudere versie van Visual Basic gemerkt heb bij iemand dat dit niet het geval was. Welke cel hij ook aan klikte, altijd de volledige regel was zwart.

Ik ga nog even toevoegen: dat het niet nodig zal zijn dat de cellen in het datagridview aan te passen zijn door er op te klikken.
Bestaat hier nog een mogelijkheid in?

Maar toch bedankt!!
Met vriendelijke groeten.
 
Laatst bewerkt:
regel was zwart?


Maar goed ik denk dat je dan event RowEnter wil gebruiken?

Code:
    Private Sub DataGridView1_RowEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.RowEnter
        DataGridView1.Rows(e.RowIndex).Selected = True
    End Sub
 
Laatst bewerkt:
Beste Pizara,

Hierbij een voorbeeld.:D

Het is niet speciaal voor het zwart te hebben hoor.:p
Maar als ik jou code toepas op mijn datagridview bij de event "cellclick" en ik druk op een cel dan wordt deze eerst geselecteerd en derna de volledige regel.

Misschien komt het omdat men nog de cellen kan wijzigen van tekst op dit moment?
In de toekomst zou men niks in het datagridview zelf kunnen veranderen van gegevens. enkel de regel aanduiden en verwijderen.

Alvast bedankt.
Met vriendelijke groeten,
 

Bijlagen

  • Voorbeeld2.jpg
    Voorbeeld2.jpg
    7 KB · Weergaven: 72
Laatst bewerkt:
Er zijn vele wegen die naar rome leiden hoor!

Geen CellClick gebruiken, maar het event die ik als laatste heb gegeven (RowEnter)
dan selecteerd ie m niet eerst, maar gelijk de hele rij.

Of in je Form_Load event dit toevoegen (is ook nog een mogelijkheid)
Code:
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
 
Beste Pizara,

Bedankt voor alle professionele informatie. Ik ga in de loop van de week een mijn layout bekijken voor mijn programma en bij verdere vragen laat ik jou dat wel horen.:D

Nogmaals bedankt voor alles!!:thumb:

Met vriendelijke groeten.
 
Beste Pizara,

Ik heb even mijn vraag opnieuw geopend.:D

U heeft mij verteld dat als u een regel in een Datagridview selecteer, dat u deze kan verwijderen met de knop "Delete" van het toetsenbord.

Zou ik u mogen vragen of het ook mogelijk is om deze te doen door een gewoone "Button"
Zou u mij kunnen helpen aan de juiste code.

Ik dank u van harte!!
Met Vriendelijke Groeten,
 
Als eerste heet ik geen 'u' maar gewoon 'je' of 'jij'. We verschillen waarschijnlijk niet zo heel veel qua leeftijd.

Maar om terug te komen op je vraag , ik denk dat het zoiets moet zijn.

Code:
        For Each Row As DataGridViewRow In DataGridView1.SelectedRows
            If (DataGridView1.Rows.Count > 1) Then
                DataGridView1.Rows.Remove(Row)
            End If
        Next

Maar hou me er niet aan vast. Probeer zelf ook eens iets.
 
Beste Pizara,

Code werkt prima!! :thumb:

Toch nog steeds bedankt.
Mvg,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan