2009-05-16 5 views
0

Windows 응용 프로그램의 C#에서 datagridview를 작업하고 있습니다. DataGridView에서 텍스트 상자 컨트롤을 추가하고 싶습니다. 그래서 우리가 그것을 실행하면 텍스트 상자가 gridview에 표시되어야하고 우리는 그 안에 값을 넣을 수 있습니다. 그리드 뷰의 세 번째 열에서 탭을 누르면 그리드에 새 행을 추가하고 싶습니다.DataGridView의 텍스트 상자 컨트롤

어떻게하면됩니까? 귀하의 질문에 구체적으로 부족 꽤 일반적인하지만 DataGridView에 텍스트 상자를 얻을 수 있기 때문에

+0

:

마이크로 소프트는 여기에 연습 있습니다. "C# .NET에서의 Windows 프로그래밍"대신 "DataGridView의 사용자 지정 컨트롤" – rein

+0

이것은 실제로 두 가지 질문, "컨트롤을 gridview에 삽입하는 방법"이라고해야합니다. 및 "사용자가 세 번째 열을 탭하면 격자보기에 행을 추가하는 방법"을 참조하십시오. – jfar

+1

연구 결과가 지금까지 밝혀 졌는지 조금 자세히 설명해 주시면 여기 사람들이 도움을 청할 것입니다. 그러나 당신이 이것을 연구하는 것을 괴롭히지 않았기 때문에 당신이 그것에 대해 정교 할 수 없다고 확신합니다. – Cerebrus

답변

2

그것은 정확한 답을 제공하기 위해 하드, 당신은 DataGridViewColumns 컬렉션에 DataGridViewTextBoxColumn의 일부 인스턴스를 추가 할 것입니다. 그러면 각 행에 텍스트 상자가 채워집니다.

사용자가 세 번째 열의 탭을 눌렀을 때를 감지하려면 1-2 픽셀 너비의 네 번째 열을 추가하고 OnCellEnter 이벤트를 사용하여 포커스가 수신되었음을 감지 할 수 있습니다 (거의 확실하게 탭 키 입력으로부터).

행운을 빈다.

+0

숨겨진 네 번째 열은 꽤 매끄러운 트릭입니다. –

0

그래서는 "질문의 기본 부분으로 표시 텍스트 상자, 여기에 마른 체형은 다음과 같습니다. GridView-> 열 편집에

, 명시 적으로 사용할 열을 추가 다음 링크를 클릭"이 변환 field를 templateField로 가져 와서 생성 된 HTML을 그 셀에 맞게 조정할 수 있습니다. "OK"를 클릭 한 다음 GridView-> Edit Templates로 이동합니다. 원하는 Column에 대해 ItemEditTemplate을 ItemTemplate으로 복사합니다 (ItemTemplate이 기본값입니다.) ItemEditTemplate contains 이제 모든 데이터 필드는 기본적으로 "편집 가능"으로 설정됩니다.

제출 버튼이있는 것으로 생각됩니다. GridView에 th를 업데이트해야한다고 알려줍니다. .에 전자 행과 같이, 제출

For Each r As GridViewRow In GridView1.Rows 
     Dim mon = System.Int32.Parse(CType(r.FindControl("TextBox1"), TextBox).Text) 
     If mon <> 0 Then GridView1.UpdateRow(r.RowIndex, False) 
    Next 

물론, 당신은 내부가 서로 다른 논리를 할 것입니다,하지만 기본적인 루프 /의 FindControl /에 updateRow 논리를 적용해야합니다. 이 질문에 대한 제목을 향상시킬 수 Performing Bulk Updates to Rows Bound to a GridView

관련 문제