2

さまざまなタイプの DataGridViewCells (コンボボックス、テキスト、ボタン) を保持する DataGridViewTextBoxColumn があります。

異なる DataGridView セル

datagridview 行を作成する方法は次のとおりです。

Public Shared Function BuildDgvRow(ByVal tq As clsTabsQuestion) As DataGridViewRow
    Dim Row As New DataGridViewRow
    Dim ComboBoxCell As New DataGridViewComboBoxCell
    Dim CellBtn As New DataGridViewButtonCell //File Upload
    Dim CellTxtQ As New DataGridViewTextBoxCell //Cell question
    Dim CellTxt As New DataGridViewTextBoxCell //Cell txt

    CellTxtQ = New DataGridViewTextBoxCell

    //Build row
    With Row
        //Add cell that will contain question
        .Cells.Add(CellTxtQ)

        //Add CheckBox / Button / Text to the other cell that will contain the answer
        Select Case tq.sType
            Case "YesNo"
                ComboBoxCell = New DataGridViewComboBoxCell()
                ComboBoxCell.Items.AddRange(New String() {"Yes", "No", "N/A"})
                .Cells.Add(ComboBoxCell)
            Case "FileUpload"
                CellBtn = New DataGridViewButtonCell
                .Cells.Add(CellBtn)
            Case "Text"
                CellTxt = New DataGridViewTextBoxCell
                .Cells.Add(CellTxt)
        End Select

        //Set row values
        .SetValues({tq.Title, ""})
        .Tag = tq
    End With

    Return Row
End Function

DataGridViewButtonCell クラスから「テキスト」プロパティを取得できないようです。DataGridViewButtonCell にテキストを設定する方法はありますか? これはアンケートであり、ユーザーは独自に作成できます。したがって、質問に対する回答として、コンボボックス、テキスト、またはボタンを選択する選択肢があります。

私がやろうとしていることは可能ですか?

4

1 に答える 1

3

さらに調査した結果、問題がわかりました... を使用しようとしたときにCellBtn.Value、行の値を空の文字列にリセットしていたことを忘れていました。愚かな私。

これが私がそれを解決した方法です(2つの方法)

DataGridViewButtonCell.Value を使用したテキストの設定

Public Shared Function BuildDgvRow(ByVal tq As clsTabsQuestion) As DataGridViewRow
    Dim Row As New DataGridViewRow
    Dim ComboBoxCell As New DataGridViewComboBoxCell
    Dim CellBtn As New DataGridViewButtonCell //File Upload
    Dim CellTxtQ As New DataGridViewTextBoxCell //Cell question
    Dim CellTxt As New DataGridViewTextBoxCell //Cell txt

    CellTxtQ = New DataGridViewTextBoxCell

    //Build row
    With Row
        //Add cell that will contain question
        .Cells.Add(CellTxtQ)

        //Add CheckBox / Button / Text to the other cell that will contain the answer
        Select Case tq.sType
            Case "YesNo"
                ComboBoxCell = New DataGridViewComboBoxCell()
                ComboBoxCell.Items.AddRange(New String() {"Yes", "No", "N/A"})
                .Cells.Add(ComboBoxCell)
            Case "FileUpload"
                CellBtn = New DataGridViewButtonCell
                CellBtn.Value = "ASdasdwd"
                .SetValues({tq.Title, CellBtn.Value})
                .Cells.Add(CellBtn)
            Case "Text"
                CellTxt = New DataGridViewTextBoxCell
                .Cells.Add(CellTxt)
        End Select

        //Set values
        If tq.sType <> "FileUpload" Then .SetValues({tq.Title, ""})
        .Tag = tq
    End With

    Return Row
End Function

DataGridViewRow.SetValue を使用してテキストを設定する

Public Shared Function BuildDgvRow(ByVal tq As clsTabsQuestion) As DataGridViewRow
    Dim Row As New DataGridViewRow
    Dim ComboBoxCell As New DataGridViewComboBoxCell
    Dim CellBtn As New DataGridViewButtonCell //File Upload
    Dim CellTxtQ As New DataGridViewTextBoxCell //Cell question
    Dim CellTxt As New DataGridViewTextBoxCell //Cell txt

    CellTxtQ = New DataGridViewTextBoxCell

    //Build row
    With Row
        //Add cell that will contain question
        .Cells.Add(CellTxtQ)

        //Add CheckBox / Button / Text to the other cell that will contain the answer
        Select Case tq.sType
            Case "YesNo"
                ComboBoxCell = New DataGridViewComboBoxCell()
                ComboBoxCell.Items.AddRange(New String() {"Yes", "No", "N/A"})
                .Cells.Add(ComboBoxCell)
            Case "FileUpload"
                CellBtn = New DataGridViewButtonCell
                .Cells.Add(CellBtn)
            Case "Text"
                CellTxt = New DataGridViewTextBoxCell
                .Cells.Add(CellTxt)
        End Select

        //Set values
        If tq.sType = "FileUpload" Then .SetValues({tq.Title, "Upload"}) Else .SetValues({tq.Title, ""})
        .Tag = tq
    End With

    Return Row
End Function
于 2013-08-17T21:32:10.370 に答える