DataGridViewissä rivi raahataan saman dgv:n toiselle riville, mutta raahauksen (DragDrop eventin) jälkeen tulee LÄHDErivi aina valituksi. Ilmeisesti siksi, että lähderivin klikkaus suoritetaan loppuun vasta kun hiiren nappi nostetaan ylös... joka tapahtuu vasta kohderivin päällä DragDrop eventin jälkeen.
Eli miten saisin Kohderivin valituksi heti rivin siirron jälkeen?
Käy myös vaihtoehto jossa ei ole mitään valittuna.
dataGridView1.Rows[lähderivi].Selected = false 'voi olla että pelkkä tämäkin riittää dataGridView1.Rows[haluamasirivi].Selected = true 'käytä lukemaksi riviä jonka saat dragndropin yhteydessä, valitsee kohderivin dataGridView1.FirstDisplayedScrollingRowIndex = haluamasirivi 'Siirtää sen pikkuisen mustan nuolen kohderiviin
Olen jo noita kaikkia kokeillut DragDrop eventin lopussa, muuta ei auta <- syytä epäilen tuossa aloitusviestissä.
kirjotappa se koodi mikä sulla on siinä eventissä
Tuossa DragDrop Eventti
Private Sub dgvMakasiini_DragDrop(ByVal sender As System.Object, ByVal e As DragEventArgs)
Dim tklID As Integer = Convert.ToInt32(e.Data.GetData(Type.GetType("System.Int32")))
Console.WriteLine(sender.name & " tklID: " & tklID)
Dim dgv As DataGridView = sender
Dim clientPoint As Point = dgv.PointToClient(New Point(e.X, e.Y))
Dim hit As DataGridView.HitTestInfo = dgv.HitTest(clientPoint.X, clientPoint.Y)
Dim KohdeRivi As Integer = hit.RowIndex
If KohdeRivi <= -1 Then Exit Sub
If dgv.Rows(KohdeRivi).Cells(0).Value IsNot DBNull.Value Then
If dgv.Rows(KohdeRivi).Cells(0).Value = tklID Then Exit Sub
If MessageBox.Show("Paikalla " & KohdeRivi + 1 & " on jo työkalu." & vbCrLf & "Poistetaanko se makasiinista?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Yes Then
Call DsLista_MuutaPaikallaArvoa(dgv.Rows(KohdeRivi).Cells(0).Value, Nothing)
Else
Exit Sub
End If
End If
Call DsLista_MuutaPaikallaArvoa(tklID, KohdeRivi + 1)
Call DgvMakasiini_Päivitä()
dgv.CurrentCell = dgv(0, KohdeRivi) 'Kohderivin valinta
End SubEdit:
Tämän eventin jälkeen ohjelmahan hyppää takaisin MouseDown eventtiin(josta sitä on kutsuttu) ja suorittaa sen loppuun, mutta kohderivin valinta sielläkään ei auta mitään.
kokeile tehdä rivin valinta MouseUp eventissä, se triggaa MouseDownin jälkeen.
Kokeiltu on... ei auta.
Tarkennan vielä, että MouseUp eventti ei edes käynnisty DragDrop eventin jälkeen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.