양식에 테이블을 추가하고 테이블에 2 열과 3 행이 있습니다. 3 행은 이름, 나이 및 장소입니다. 런타임에이 테이블에서 존경받는 행의 두 번째 열의 값을 업데이트하려고합니다. 내가 이미지 이름 위의 eg.In은이테이블 컨트롤을 폼에 추가하는 방법?
같은 테이블을 추가 할 컬럼 1 및 2 열 첫 번째 행의 테이블 행 항목의 하나 이름의 값을 포함합니다.
어떻게 할 수 있습니까?
양식에 테이블을 추가하고 테이블에 2 열과 3 행이 있습니다. 3 행은 이름, 나이 및 장소입니다. 런타임에이 테이블에서 존경받는 행의 두 번째 열의 값을 업데이트하려고합니다. 내가 이미지 이름 위의 eg.In은이테이블 컨트롤을 폼에 추가하는 방법?
같은 테이블을 추가 할 컬럼 1 및 2 열 첫 번째 행의 테이블 행 항목의 하나 이름의 값을 포함합니다.
어떻게 할 수 있습니까?
컨테이너 클래스의 일종 만들기 (즉 모음의 일종)이 도움이 될 수있는 이러한 링크를 시도하는 키 - 값 쌍을 저장하고 바인딩합니다. 실행시 DataGrid
으로 변경하십시오.
Quick'n'dirty 예 : 당신의 Form
에서
Class Container
Inherits BindingList(Of Value)
Class Value
Public Property Key As String
Public Property Value As Object
End Class
Public Sub New()
Add(New Value With {.Key = "Name"})
Add(New Value With {.Key = "Age"})
Add(New Value With {.Key = "Place"})
End Sub
Default Public Overloads Property Item(ByVal key As String) As Object
Get
Return Me.FirstOrDefault(Function(v) v.Key = key)
End Get
Set(ByVal value As Object)
Dim v = Me.FirstOrDefault(Function(e) e.Key = key)
If v Is Nothing Then
Add(New Value With {.Key = key, .Value = value})
Else
v.Value = value
End If
End Set
End Property
End Class
:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim grd = New DataGrid With {.Dock = DockStyle.Fill}
Controls.Add(grd)
Dim container = New Container()
grd.DataSource = container
container("Age") = 12
container("Place") = "Somewhere"
End Sub
그런 다음 DataGrid의 외관을 조정해야합니다. 물론 당신에게 달려 있습니다.
이렇게하면 눈금이 container
개체에 바인딩되어 값을 쉽게 읽고 변경할 수 있습니다.
ok ... 그러나 코드에없는 디자인 모드에서만 행을 추가하려고합니다. –
이것은 지원되지 않습니다. 표준'DataGrid' 또는 다른 표준 WinForm 컨트롤을 사용합니다. 그러나 당신은'DataGrid'를 서브 클래스화할 수 있고, 생성자의이 그리드를 데이터 소스에 바인딩하고, 데이터 소스에 요소를 추가 할 수있는 적절한 desginer 컴포넌트를 만들 수 있습니다. 그러나이 질문/답변의 범위를 벗어납니다. – sloth
어쩌면 데이터 격자 사용 – sloth
GridView에서 GridView를 사용해 보았습니다. 설계 부분에서 행이 아닌 열을 추가 할 수 있습니다 .. –