2011-09-05 4 views
1

나는 값을 표시하기 위해 datagridviewcomboboxcell을 사용하고 있습니다. 이 셀 값이 int 였으면 좋겠다. 그러나 : 콤보 상자를 열면 콤보 상자의 각 항목에 대한 설명을보고 싶습니다. 하나를 선택하면 값이 변경되고 (콤보 박스가 닫힙니다) 표시되는 값은 int입니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?DataGridview의 C# 콤보 상자

처럼 : 선택 항목 : 2

확장 콤보 : 0 - 엔, 1 - 때문에 2 - rike 3 - 도움 가짜 감사합니다.

+0

대부분 DataTextField 및 DataValueField 속성을 설정해야합니다. –

+0

나는 그것을 얻지 않는다. 어디 datagridviewcomboboxcell 클래스에서 textfieldcelll 아니야 – santBart

+0

이것은 WinForm 또는 WebForm (ASP.NET) 프로젝트입니까? –

답변

1

TextField 및 ValueField를 설정하는 방법을 발견하더라도 컨트롤에 드롭 다운 목록 (숫자 및 텍스트)이 표시되는 동안 그리고 축소되었을 때만 드롭 다운으로 표시되는 동안 다른 텍스트가 렌더링된다는 점을 심각하게 의심합니다 폐쇄 됨 (번호 만).

당신이 묻는 것은 물론 이해할 만하지만 몇 가지 속성 만 설정하면 아무런 노력없이 실행할 수 없습니다. 자세한 내용은

void dataGridView1_EditingControlShowing(object sender, 
      DataGridViewEditingControlShowingEventArgs e) 
     { 
      if (e.Control is ComboBox) 
      { 
       ComboBox cmb = e.Control as ComboBox; 

       // here you can work on the ComboBox... 
      } 
     } 

확인 : 여기 출발점이며, 제어를위한 사용자 정의 값을, 콤보를 들어, EditingControlShowing 거기에 지정

은 이벤트를 차단한다 형태 창에서이 문제를 처리하려면 여기에 : DataGridView.EditingControlShowing Event

+0

흠. 아마도 내가 그 질문을 잘못 읽었을 것입니다. 그게 그가하고 싶은 일이라면 내 대답은 작동하지 않습니다 ... –

+1

그녀. 도와 주셔서 감사합니다;) – santBart

0

개체의 속성 중 "id"가되도록 ValueMember 속성을 설정해야합니다. 표시되는 텍스트를 설정하려면 DisplayMember 속성에 표시 할 개체의 속성을 할당하십시오. 이 DataGrid가 데이터베이스 레코드 또는 일부 정렬에 바인딩되는 경우 위에서 언급 한 속성은 바인딩 할 테이블 필드의 이름이어야합니다.

+0

valuemember 및 displaymember의 additon은 items.add 메소드와 어떻게 대응합니까? – santBart

+0

개체 목록을 바인딩한다고 가정하면 DataGridView로 구운 코드는 위에서 언급 한 속성에 첨부 한 이름과 일치하는 속성 이름의 개체를 검색합니다. –