Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB .NET] cambiare il currentRow sul datagridview tramite codice

    Ciao sto faccendo una procedura dove ho un datagridview dove vengono mostrati dei dati ho fatto accanto una serie di pulsanti che permetono di cancelare, cambiare ordine delle righe.
    Allora il problema che ho che ho il che vorrei cambiare il currentRow via codice di programazione. mi spiego via codice faccio che tramite al click sul pulsante dedicato la i valori su una riga selezionato vano sulla riga succesiva questo è il codice:

    Dim fine As Integer
    Dim sel As Integer
    Dim temp1 As String
    Dim temp2 As String
    Dim temp3 As String
    Dim temp4 As String


    fine = i - 1
    sel = DataGridView1.CurrentRow.Index
    DataGridView1.CurrentRow.Selected = False

    If sel < fine Then
    temp1 = DataGridView1(0, sel).Value
    temp2 = DataGridView1(1, sel).Value
    temp3 = DataGridView1(0, (sel + 1)).Value
    temp4 = DataGridView1(1, (sel + 1)).Value
    DataGridView1(0, sel).Value = temp3
    DataGridView1(1, sel).Value = temp4
    DataGridView1(0, (sel + 1)).Value = temp1
    DataGridView1(1, (sel + 1)).Value = temp2
    DataGridView1.Rows(sel).Selected = False
    DataGridView1.Rows(sel + 1).Selected = True
    End If

    il problema che vorrei che se rifaccio il click sempre sullo stesso pulsante senza toccare il datagridview la riga selezionata dove fa il cambio succesivo sia quella attuale e non ankora quella precedente

    cioè vorrei cambiare il valore del DataGridView1.CurrentRow.Index

  2. #2
    ma con questo codice tu vuoi riordinare le righe della datagridview? il tutto poi viene salvato in db?
    no pain no gain!

    ricordati che hai dei limiti...

  3. #3
    No

  4. #4
    risposta esaustiva...

    cmq...

    DataGridView1.ClearSelection()
    DataGridView1.CurrentCell = DataGridView1(sel+1,0)

    spero la sintassi sia giusta (lavoro solo in c#)
    no pain no gain!

    ricordati che hai dei limiti...

  5. #5
    non fa quello che vorrei.

    vedi i pulsanti?
    quellis ervono x pilotare il datagirdview.
    ok io vorrei pilotare via codice quel triangolino nero che c'è sulla prima colonna che diciamo classifica la riga selezionata corrente
    Immagini allegate Immagini allegate

  6. #6
    ritestato il mio codice e funziona

    codice:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                DataTable dt = new DataTable();
                for (int n = 0; n < 2; n++)
                    dt.Columns.Add(new DataColumn("col" + n.ToString(), typeof(System.Int16)));
    
                for (int n = 0; n < 10; n++)
                    dt.Rows.Add(n, n * 10);
    
                this.dataGridView1.DataSource = dt;
                this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                int index = this.dataGridView1.CurrentRow.Index;
                if (index == this.dataGridView1.RowCount - 1)
                    return;
                this.dataGridView1.CurrentCell = this.dataGridView1.Rows[index + 1].Cells[0];
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                int index = this.dataGridView1.CurrentRow.Index;
                if (index == 0)
                    return;
                this.dataGridView1.CurrentCell = this.dataGridView1.Rows[index - 1].Cells[0];
            }
    
        }
    no pain no gain!

    ricordati che hai dei limiti...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.