【问题标题】:DataGridView binded to DataTable - Now sorting DataGridViewDataGridView 绑定到 DataTable - 现在对 DataGridView 进行排序
【发布时间】:2011-01-20 12:09:56
【问题描述】:

目前我有一个 DataGridView(绑定到一个 DataTable)和一些标签。如果DataGridView的事件SelectionChanged发生,标签应该填上选中行的信息->没问题。但是如果我对DataGridView进行排序并单击一行,标签中的信息是错误的。

事件:

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

设置标签的详细信息:

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

【问题讨论】:

    标签: vb.net winforms binding datagridview datatable


    【解决方案1】:

    还需要在DataGridView的Sorted事件中设置label的详细信息

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2011-08-19
      • 2011-02-13
      • 2015-11-29
      相关资源
      最近更新 更多