2011-01-20 4 views
0

Pour le moment, j'ai un DataGridView (bindet à un DataTable) et quelques étiquettes. Si l'événement DataCridView de DataGridView se produit, les étiquettes doivent être remplies avec les informations de la ligne sélectionnée -> Aucun problème. Mais si je trier le DataGridView et cliquez sur une ligne, les informations dans les étiquettes sont fausses.DataGridView lié à DataTable - Trier maintenant DataGridView

événement:

Private Sub DGVMain_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DGVMain.SelectionChanged 
    If DGVMain.SelectedRows.Count > 0 AndAlso Not Me.DGVMain Is Nothing Then 
     Dim index As Integer = DGVMain.SelectedRows(0).Index 

     Dim row As ResultSet.ResultsRow = CType(DGVMain.DataSource, ResultSet.ResultsDataTable).Rows(index) 
     SetDetails(row) 
    End If 
End Sub 

Définit les détails des étiquettes:

Private Sub SetDetails(ByVal row As ResultSet.ResultsRow) 
    Dim rounding As Integer = 0 
    If row.AssayDisplayResultFormat.Contains(":") Then 
     rounding = Integer.Parse(row.AssayDisplayResultFormat.Split(":")(1)) 
    End If 
    LBResultValue.Text = Round(row.ResultResultValue * row.AssayDisplayResultFactor, rounding) & " " & row.AssayDisplayResultUnit 
    LBAssayNameValue.Text = row.AssayDisplayShortName & " (" & row.AssayOID & ")" 
    LBSampleIdValue.Text = row.ResourceName 
    LBCreationDateValue.Text = row.ResourceCreated 
    LBFlagsValue.Text = "" 
    LBRawValue.Text = Round(row.ResultRawValue, rounding) & " " & row.AssayDisplayResultUnit 
End Sub 

Répondre

1

vous devez également définir les détails de l'étiquette en cas de DataGridView Classé

 private void DGVMain_Sorted(object sender, EventArgs e) 
     { 
      SetDetails(dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex]); 
     } 
Questions connexes