2010-12-20 8 views
3

Ich habe ein Projekt, das eine Reihe von DataGridView-Steuerelementen verwendet. Die meisten Zellen verfügen über die DataGridViewTextBoxCell-Überredung. Ich erkläre meine Steuerelemente wie folgt:Wie kann ich verhindern, dass Benutzer Daten in DataGridViewComboBoxCells eingeben?

Dim MyCell as DataGridViewCell 

Später ich angeben, ob sie DataGridViewTextBoxControls oder DataGridViewComboBoxCells wie so:

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

Keiner der Orte in meinem Code erfordern die Fähigkeit, für die Benutzer ihre eigenen eingeben Werte in den Kombinationsfeldern. Das heißt, sie sind entweder fest codiert oder die Werte stammen aus anderen Daten innerhalb der Anwendung.

Derzeit können Benutzer ein Kombinationsfeld-Steuerelement markieren, das wie oben gezeigt definiert ist, und beginnen, alles einzugeben, was sie möchten. Zum Beispiel habe ich ein Kombinationsfeld, das dem Benutzer eine Auswahl von Ganzzahlen zwischen 1 und 9 bietet. Ich kann die Kombinationsfeldzelle markieren und "Hello, World!" wenn ich möchte.

Was benötigt man, um diese Fähigkeit zu deaktivieren? Ich bin mir sicher, dass es eine Immobilie gibt, aber ich muss sie noch finden. Ich habe das Internet durchsucht und nur die Möglichkeit gefunden, dass von Benutzern eingegebene Werte zur Liste hinzugefügt werden und ein Stream von Datenbindungs-Lernprogrammen.

Vielen Dank im Voraus! C

Antwort

3

prüfen here

EDIT

ich wahrscheinlich mehr Informationen nach oben hätte setzen, aber ich bin müde und ein wenig krank fühlen, so fühlte ich mich wie faul ... aber Sie nicht muss meine Faulheit ruinieren und mich zwingen, noch mehr zu tippen. (LOL nur Spaß).

Im Wesentlichen ist die Comboxbox, die Sie in einer Comboboxzelle sehen, eigentlich ein Combobox-Steuerelement (Tired = Bad Engrish).

Soweit ich mich erinnern kann, sollten Sie in der Lage sein, mit dem EditingControlShowing -Ereignis des datagridview auf das in der Zelle verwendete Steuerelement zuzugreifen. Dort legen Sie einfach den Dropdown-Stil fest.

Like:

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

Wenn dies eine Straight-up-Kontrolle ComboBox ist, und kein DataGridViewComboBoxCell, dies würde gut funktionieren. Es sei denn, es gibt einen magischen Trick für DataGridViewComboBoxCells, der es ihnen erlaubt, diese Eigenschaft zu verwenden, und ich habe sie noch nicht gefunden. – Superhuman

+0

Siehe Update oben: P –

+0

Siehe? Das ist die Magie, nach der ich gesucht habe! – Superhuman