0

Visual Studio と VB.net を使用して、グリッドビューにデータを入力し、ドロップダウンのテキスト値に基づいて、特定の列を非表示にし、必要に応じて再表示したいと考えています。

ドロップダウンには、科目のリスト (英語、数学科学など) が sql 経由で入力されます。

グリッドには、KS2 英語、KS2 数学、および KS2 平均の 3 つの列を含む列が含まれています。

ドロップダウンから英語を選択すると、KS2 Maths 列と KS2 Average 列を非表示にしたいと思います。

Maths が選択されたら、KS2 English と KS2 Average の列を非表示にしたいと思います。

最後に、他の科目が選択されている場合は、KS2 英語と KS2 数学の列を非表示にしたいと思います。

ドロップダウンの件名に基づいて更新されたデータをグリッドビューに既に入力していますが、選択に基づいて表示される列を特定するために何をする必要があるかわかりません。

これは、私がこれまでに持っているものを明確にするスクリーンショットです:

ここに画像の説明を入力

4

2 に答える 2

1

このコードを試してください:

ハンドラーの追加に使用されます

 Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing

        If TypeOf e.Control Is ComboBox Then

            AddHandler CType(e.Control, ComboBox).SelectedIndexChanged, AddressOf LastColumnComboSelectionChanged

        End If

    End Sub

目に見える偽の列に使用されます

Private Sub LastColumnComboSelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)

    DataGridView1.Columns(5).Visible = True
    DataGridView1.Columns(4).Visible = True
    DataGridView1.Columns(3).Visible = True

    If sender.SelectedItem = "Maths" Then
        DataGridView1.Columns(2).Visible = False
        DataGridView1.Columns(4).Visible = False
    ElseIf sender.SelectedItem = "English" Then
        DataGridView1.Columns(3).Visible = False
        DataGridView1.Columns(4).Visible = False
    ElseIf sender.SelectedItem = "others" Then
        DataGridView1.Columns(3).Visible = False
        DataGridView1.Columns(4).Visible = False
        DataGridView1.Columns(2).Visible = False
    End If

    End Sub
于 2013-04-10T12:22:15.603 に答える
1

並べました。ページの読み込みに関する次の手順を記述しました。

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    GvStudentDetails.Columns(17).Visible = False
    GvStudentDetails.Columns(18).Visible = False
End Sub

そして、ドロップダウン select プロシージャ内の次の select case ステートメント:

Protected Sub DdlSubject_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubject.SelectedIndexChanged
    Select Case strSubject
        Case "English"
            GvStudentDetails.Columns(16).Visible = True
            GvStudentDetails.Columns(17).Visible = False
            GvStudentDetails.Columns(18).Visible = False
        Case "Mathematics"
            GvStudentDetails.Columns(16).Visible = False
            GvStudentDetails.Columns(17).Visible = True
            GvStudentDetails.Columns(18).Visible = False
        Case Else
            GvStudentDetails.Columns(16).Visible = False
            GvStudentDetails.Columns(17).Visible = False
            GvStudentDetails.Columns(18).Visible = True
    End Select
End Sub
于 2013-04-10T17:32:08.710 に答える