Editovanie Cell v DatagridView   otázka

VB.NET, WinForms

Ahojte mám takýto problém.

Mám v DataGridView tabuľku, do ktorej pomocu čitačky čiarových kódov ukladám PartNo a SerNo. Po zadaní PartNo sa prepnem na stĺpec SerNo. Po zadaní SerNo, ak je nutné, vytvorím nový riadok a predvyplním PartNo. Prepínam to v udalostnej procedúre CellEndEdit. Akonáhle však pri editovaní bunky kliknem myškou na inú bunku, program mi spadne.

Private Sub ptGrid_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles ptGrid.CellEndEdit
        With ptGrid
            Select Case e.ColumnIndex
                Case 1
                    PnoText.Text = .CurrentCell.Value
                    .CurrentCell = .Item(2, e.RowIndex)
                Case 2
                    If (.CurrentCell.Value <> "") Then
                        If (e.RowIndex = .RowCount - 1) Then
                            .Rows.Add(1)
                            Pocet += 1
                            .Item(0, e.RowIndex + 1).Value = Format(Pocet, "0000")
                            .Item(1, e.RowIndex + 1).Value = PnoText.Text
                        End If
                        .CurrentCell = .Item(2, e.RowIndex + 1)
                    End If
            End Select
        End With
    End Sub

Ďalšou chybou je, že ak sa pohybujem v DataGride, po zadaní PartNo sa má kurzor presunúť na SerNo v tom istom riadku. Ale deje sa tak iba v poslednom riadku. V ostatných (.RowIndex < .RowCount - 1) sa kurzor vždy posunie o riadok nižšie. Vedel by mi niekto poradiť ako ošetriť tieto chyby? Veľmi pekne ďakujem.

PS: stĺpec s indexom 0 je len ako počítadlo

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kde přesně to padá? Na jakém řádku? Co to hlásí za chybu?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Padá to na riadku, kde sa do CurrentCell priraďuje Item, ale iba v prípade, že je bunka v edit mode a užívateľ klikne na inú bunku.

.CurrentCell = .Item(2, e.RowIndex)

a vypíše to chybu : "Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function". Asi chápem, prečo sa tak stane, ale neviem to (okrem On Error) ošetriť.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pozeral som aj po nete ale absolutne nic som nenasiel. Ak by mi vedel niekto len trosku pomoct, budem moc moc povdacny.

Michal Stratilík

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback