簡體   English   中英

在Datagridview中更改特定的行和列

[英]Change specific row and column in Datagridview

我想更改Datagridview中的特定行和列。 當我在x列中輸入特定數據時,它將在Y列中返回任何特定值。 否則, x列中的數據將在Y列中返回值7777

在此處輸入圖片說明

但是,當我運行此代碼時, Y列沒有任何變化:

Private Sub Table1DataGridView_CellEndEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Table1DataGridView.CellEndEdit

    'For e.ColumnIndex + 1
    If e.ColumnIndex = 2 Then
        If Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 5

        ElseIf Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 7 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 7

        ElseIf Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 1 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 6
            '1
        ElseIf Val(Table1DataGridView.Rows(1).Cells(2).Value) = 1.5 Then
            Table1DataGridView.Rows(1).Cells(e.ColumnIndex + 1).Value = 7.326
            '2
        ElseIf Val(Table1DataGridView.Rows(2).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(2).Cells(e.ColumnIndex + 1).Value = 6.374
            '3
        ElseIf Val(Table1DataGridView.Rows(3).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(3).Cells(e.ColumnIndex + 1).Value = 4.702
            '4
        ElseIf Val(Table1DataGridView.Rows(4).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(4).Cells(e.ColumnIndex + 1).Value = 1.321
            '5
        ElseIf Val(Table1DataGridView.Rows(5).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(5).Cells(e.ColumnIndex + 1).Value = 0.035
            '6
        ElseIf Val(Table1DataGridView.Rows(6).Cells(2).Value) = 4 Then
            Table1DataGridView.Rows(6).Cells(e.ColumnIndex + 1).Value = 0.205
            '7
        ElseIf Val(Table1DataGridView.Rows(7).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(7).Cells(e.ColumnIndex + 1).Value = 4.969
            '8
        ElseIf Val(Table1DataGridView.Rows(16).Cells(2).Value) = 4 Then
            Table1DataGridView.Rows(16).Cells(e.ColumnIndex + 1).Value = 1.588
            '9
        ElseIf Val(Table1DataGridView.Rows(17).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(17).Cells(e.ColumnIndex + 1).Value = 4.696
            '10
        ElseIf Val(Table1DataGridView.Rows(18).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(18).Cells(e.ColumnIndex + 1).Value = 0.866
            '11
        ElseIf Val(Table1DataGridView.Rows(19).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(19).Cells(e.ColumnIndex + 1).Value = 1.881
            '12
        ElseIf Val(Table1DataGridView.Rows(20).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(20).Cells(e.ColumnIndex + 1).Value = 4.702
            '13
        ElseIf Val(Table1DataGridView.Rows(21).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(21).Cells(e.ColumnIndex + 1).Value = 6.515
            '14
        ElseIf Val(Table1DataGridView.Rows(22).Cells(2).Value) = 1.5 Then
            Table1DataGridView.Rows(22).Cells(e.ColumnIndex + 1).Value = 6.92671744
        Else
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 7777

        End If
    End If

End Sub

然后,我嘗試更改此代碼,但在Y列返回一些相同的值:

Private Sub Table1DataGridView_CellEndEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Table1DataGridView.CellEndEdit

    'For e.ColumnIndex + 1
    If e.ColumnIndex = 2 Then
        If Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 5

        ElseIf Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 7 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 7

        ElseIf Val(Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) = 1 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 6
            '1
        ElseIf Val(Table1DataGridView.Rows(1).Cells(2).Value) = 1.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 7.326
            '2
        ElseIf Val(Table1DataGridView.Rows(2).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 6.374
            '3
        ElseIf Val(Table1DataGridView.Rows(3).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 4.702
            '4
        ElseIf Val(Table1DataGridView.Rows(4).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 1.321
            '5
        ElseIf Val(Table1DataGridView.Rows(5).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 0.035
            '6
        ElseIf Val(Table1DataGridView.Rows(6).Cells(2).Value) = 4 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 0.205
            '7
        ElseIf Val(Table1DataGridView.Rows(7).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 4.969
            '8
        ElseIf Val(Table1DataGridView.Rows(16).Cells(2).Value) = 4 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 1.588
            '9
        ElseIf Val(Table1DataGridView.Rows(17).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 4.696
            '10
        ElseIf Val(Table1DataGridView.Rows(18).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 0.866
            '11
        ElseIf Val(Table1DataGridView.Rows(19).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 1.881
            '12
        ElseIf Val(Table1DataGridView.Rows(20).Cells(2).Value) = 2.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 4.702
            '13
        ElseIf Val(Table1DataGridView.Rows(21).Cells(2).Value) = 2 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 6.515
            '14
        ElseIf Val(Table1DataGridView.Rows(22).Cells(2).Value) = 1.5 Then
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 6.92671744
        Else
            Table1DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex + 1).Value = 7777

        End If
    End If

End Sub

謝謝您的幫助!

如果DataGridView是數據綁定的,則需要修改數據綁定的對象,而不是直接修改網格。 您可以通過DataBoundItem屬性訪問該對象:

Dim obj As MyObject = Table1DataGridView.CurrentRow.DataBoundItem
obj.MyProperty = newValue

只要適當設置MyObject和MyProperty

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM