2010-12-20 1 views
3

많은 DataGridView 컨트롤을 사용하는 프로젝트가 있습니다. 대부분의 셀은 DataGridViewTextBoxCell 설득력이 있습니다. 나는 그렇게처럼 내 컨트롤을 선언 사용자가 DataGridViewComboBoxCells에 데이터를 입력하지 못하게하려면 어떻게해야합니까?

Dim MyCell as DataGridViewCell 

나중에 나는 그들이 그렇게 같은 DataGridViewTextBoxControls 또는 DataGridViewComboBoxCells 여부를 지정합니다 내 코드에서 장소의

MyCell = New DataGridViewTextBoxCell ...or... 
MyCell = New DataGridViewComboBoxCell 

없음은 사용자가 자신을 입력 할 수있는 기능이 필요하지 않습니다 콤보 상자의 값. 즉, 응용 프로그램 내에서 하드 코딩되거나 값이 다른 데이터에서 수집됩니다.

현재 사용자는 위에 표시된대로 정의 된 콤보 상자 컨트롤을 강조 표시하고 원하는 내용을 입력 할 수 있습니다. 예를 들어, 사용자에게 1에서 9 사이의 정수를 제공하는 콤보 상자가 하나 있습니다. 콤보 상자 셀을 강조 표시하고 "Hello, World!"를 입력 할 수 있습니다. 내가 원한다면.

이 기능을 사용 중지하려면 어떻게됩니까? 나는 재산이 있다고 확신하지만 아직 그것을 찾으려고하지 못했습니다. 필자는 인터넷을 검색하여 목록에 사용자가 입력 한 값과 데이터 바인딩 자습서 스트림을 추가 할 수있는 기능 만 발견했습니다.

미리 감사드립니다. C

답변

3

확인 here

편집 아마 많은 정보를 넣을 뻔했지만 나는 피곤하고 내가 게으른 것 같은 느낌이 조금 아픈 느낌 해요 ...하지만 당신을

내 게으름을 망치고 더 많은 것을 입력하도록 강요해야합니다. (웃음 거리 농담).

본질적으로 comboboxcell에서 볼 수있는 comboxbox는 acobally combobox 컨트롤입니다 (Tired = Bad Engrish).

내가 기억할 수있는 한, 당신은 DataGridview의 EditingControlShowing 이벤트를 사용하여 셀에서 사용되는 컨트롤을 사용할 수 있어야합니다. 일단 거기에 드롭 다운 스타일을 설정하면됩니다.

등이 직선 업 콤보 상자 컨트롤, 아닌 DataGridViewComboBoxCell 이었다면

Private Sub datagridview_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) 

    Dim c As ComboBox = e.Control 

    If Not c Is Nothing Then 

     c.DropDownStyle = ComboBoxStyle.DropDownList 

    End If 

End Sub 
+0

이 잘 작동합니다. DataGridViewComboBoxCells에이 속성을 사용할 수있는 마법의 트릭이 없으면 아직 찾지 못했습니다. – Superhuman

+0

업데이트보기 : P –

+0

참조 하시겠습니까? 그게 내가 찾고 있던 마법이야! – Superhuman