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 Sub
Edit:
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.