2017-05-20 1 views
0

업데이트 5/21/17. 표 사용에 대한 제안에 감사드립니다. 도움이되었습니다. 나는 그것을 실제로 알아 냈다. Dim 문을 맨 위에 선언하고 Datagridview 유형으로 지정하여 myinputable 전역 변수를 만들었습니다. 이제는 내가해야 할 다른 사건에서 그것을 끌 수있다.VB에서 Datagridview에서 마우스 클릭과 같은 이벤트 캡처

저는 초보자입니다. VB 2015에서 Datagridview를 작성하여 사용 데이터를 캡처합니다. 사용자가 데이터 입력을 완료하면 셀 변수를 변수에 저장하려고합니다. 동적으로 생성 된 DataGridview "myinputable"에서 이벤트를 캡처하는 방법을 모르겠습니다. 내 코드는 아래와 같습니다. 도와주세요.

정수 ' '로 문자열 희미한 K로

개인 서브 inputmodel() 희미한 프롬프트 먼저 문제의 제목과 목표와 대안 ' 프롬프트 = "문제의 제목을 입력 :"의 수를 얻을 제목을 =에서 InputBox를 (프롬프트) 프롬프트 = "기준의 번호 입력 :" nobj =에서 InputBox (프롬프트) 프롬프트 = "대안의 번호 입력 :" nalt = (프롬프트)에서 InputBox '
'이제 테이블을 생성 '@Plutonix에서 알 수 있듯이, 당신이 DataTable를 작성하여 시작해야

For k = 1 To 6 
     If k <> 2 Then 
      Dim nc As New DataGridViewTextBoxColumn 
      nc.Name = "" 
      Myinputable.Columns.Add(nc) 
     Else 
      Myinputable.Columns.AddRange(combocol) 
     End If 
    Next k 

    ' now add the rows and place the spreadsheet on the form 

    Myinputable.Rows.Add(nobj - 1) 
    Myinputable.Location = New Point(25, 50) 

    Myinputable.AutoSize = True 
    Me.Controls.Add(Myinputable) 
    FlowLayoutPanel1.Visible = True 

    Myinputable.Columns(0).Name = "Name" 
    Myinputable.Columns(0).HeaderText = "Name" 

    Myinputable.Columns(1).Name = "Type" 
    Myinputable.Columns(1).HeaderText = "Type" 

    Myinputable.Columns(2).Name = "LThresh" 
    Myinputable.Columns(2).HeaderText = "Lower Threshold" 
    'Myinputable.Columns(2).ValueType = co 

    Myinputable.Columns(3).Name = "UThresh" 
    Myinputable.Columns(3).HeaderText = "Upper Threshold" 

    Myinputable.Columns(4).Name = "ABMin" 
    Myinputable.Columns(4).HeaderText = "Abs. Minimum" 

    Myinputable.Columns(5).Name = "ABMax" 
    Myinputable.Columns(5).HeaderText = "Abs. Maximum " 

    Myinputable.Rows(0).Cells(0).Value = "Help" 

    If Myinputable.Capture = True Then 
     MsgBox(" damn ") 
    End If 
    End Sub 
+0

DataGridView는 주로 * 데이터 *의 *보기 *를 사용자에게 제공하기위한 것입니다. 그것은 데이터를 보유 할 수 있지만 더 좋은 메커니즘 인 DataTable이 있습니다. - 숫자 값을 숫자 형식으로 저장할 수도 있습니다. 어떤 영웅류도 필요 없습니다. DGV는 데이터 테이블에 데이터를 저장합니다. – Plutonix

답변

0

희미한 Myinputable 새로운 DataGridView를 희미한 combocol 새로운 DataGridViewComboBoxColumn은 combocol.Items.AddRange ("Decreaing", "Threashold"를 "증가")으로 . 적절한 유형의 열을 DataTable에 추가 한 다음 그리드에 바인딩합니다. 예 : 그리드의 DataSource에 할당합니다. 이미 하나를 가지고 있지 않거나, 디자이너의 열을 추가하고 DataPropertyName 어떤 DataColumn에 바인딩 그들에게 설정할 수있는 경우 자동으로 그리드에 적절한 열을 추가합니다

Dim table As New DataTable 

With table.Columns 
    .Add("ID", GetType(Integer)) 
    .Add("Name", GetType(String)) 
End With 

DataGridView1.DataSource = table 

. 사용자가 그리드를 변경하면 데이터는 자동으로 기본 DataTable으로 푸시됩니다.

완료되면 DataTable을 통해 데이터에 액세스 할 수 있으며 원하는 경우 데이터 어댑터의 Update 메소드를 한 번 호출하여 데이터베이스에 저장할 수도 있습니다.

관련 문제