0
datagridview 크리에이터에서 수동으로 만든 4 개의 열을 포함하는 datagridview를 사용하십시오. 첫 번째, 두 번째 및 세 번째 열은 텍스트 상자 열이지만 마지막 열은 comboboxcolumn으로 표시됩니다. 내 양식에 버튼이 있는데, 사용자가 클릭하면 새 행이 DataGridview에 추가됩니다. 처음 세 열의 데이터는 일부 변수에서 채워지고 마지막 콤보 열은 사용자가 데이터 소스에서 채워야하므로 값을 선택할 수 있습니다. . 문제는 내가이 콤보 상자 열 문제가되고 지금까지의 그것을 채울 수없는이 콤보 상자가있는 Datagridview는 기입 할 수 없습니다
는이 시도 내 실제 코드
Private Sub myButton_Click(sender As Object, e As EventArgs) Handles btnAddMatType.Click
Dim dt as DataTable
dt = New Variation().GetAll() 'returning Ids and Names
Dim cbo = CType(dgvMaterials.Columns(3), DataGridViewComboBoxColumn)
cbo.Items.AddRange(dt.AsEnumerable().Select(Function(s) s.Field(Of String)("Name")).ToArray())
try
Dim rodzajID as String = TreeMaterials.SelectedValue
Dim rodzajName as string = TreeMaterials.SelectedNode.Text
Dim material as string = TreeMaterials.SelectedNode.Parent.Text
dgvMaterials.Rows.Add(material, rodzajName, rodzajID)
End Sub
입니다 : 두 경우 모두
Private Sub myButton_Click(sender As Object, e As EventArgs) Handles btnAddMatType.Click
Dim dt as DataTable
dt = New Variation().GetAll() 'returning Ids and Names
Dim cbo = CType(dgvMaterials.Columns(3), DataGridViewComboBoxColumn)
cbo.DataSource = dt
cbo.ValueMember = "Id"
cbo.DisplayMember = "Name"
Dim rodzajID as String = TreeMaterials.SelectedValue
Dim rodzajName as string = TreeMaterials.SelectedNode.Text
Dim material as string = TreeMaterials.SelectedNode.Parent.Text
dgvMaterials.Rows.Add(material, rodzajName, rodzajID)
End Sub
때마다 사용자가 클릭 버튼 행은 DataGrid에 추가되지만 마지막 열의 콤보 박스는 비어 있습니다. 어떻게 해결할 수 있을까요?
, 올바른 하나에 액세스해야합니다. 그렇지 않으면 데이터가 항목 컬렉션에 있음을 알 수 있습니다. CBO를 열려면 사용자가 2ce를 클릭해야합니다 (처음으로 행을 선택 함). 최후의 수단으로 디자이너를 열고 CBO 열을 제거하고 프로젝트를 저장 한 다음 다시 추가하십시오. 실수로 일부 속성을 설정하여 작동하지 못하게 할 수도 있습니다. – Plutonix
... 예를 들어 실수로 열 편집기에서 cbo 열을 ReadOnly로 설정 한 경우 열지 않습니다. – Plutonix