Laden...

ComboBox - Klick in Textbereich

Erstellt von frost vor 12 Jahren Letzter Beitrag vor 12 Jahren 840 Views
F
frost Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren
ComboBox - Klick in Textbereich

Hi,

wenn ich bei einer ComboBox in den Texteingabebereich klicke wird dieser nicht aktiv. Nur wenn ich auf den "DropDown" Button in der ComboBox klicke kann man manuell Text eingeben.

Ich hätte gerne dem User ermöglicht direkt Text eingeben zu können (wie bei einer Textbox halt) wenn dieser auf die ComboBox klickt.

Ist das nur eine Property die man da einstellen muss? Eventuell ist das ne total triviale Sache grade und ich stehe nur auf dem Schlauch ...

Wäre auf jedenfall sehr für Hilfe dankbar.

G
538 Beiträge seit 2008
vor 12 Jahren
ComboBox.DropDownStyle = ComboBoxStyle.DropDown;

Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)

F
frost Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren

hm ja ... habe eben auch mal ein neues projekt aufgemacht und da geht das auch problemlos.

irgendwie ist da irgendwas verstellt in meinem spezifischen projekt hier ... glaube da muss ich den fehler suchen. danke trotzdem 😃

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo frost,

glaube da muss ich den fehler suchen.

z.B. so: [Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden.

herbivore

F
frost Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren

genau so habe ichs gemacht. ich habe in meinem projekt eine hauptform und diese hat child-forms.

ich binde diese "childs" folgendermaßen in die hauptform ein:

  
form.TopLevel = false;
this.Controls.Add(form);

der nebeneffekt ist hierbei wohl das comboboxen nicht mehr korrekt funktionieren. keine ahnung, wusste ich nicht. auch nicht schlimm, aber hat mich stunden gekostet =)

schlauer ist hierbei mit sowas zu arbeiten (die mainForm instanziere ich einfach beim Programmstart):

 
form.Parent = mainForm;

dann funktionieren auch noch die comboboxen wie sie sollen ...

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo frost,

kann ich kaum glauben. form1.Controls.Add (form2) und form2.Parent = form1 sind nur unterschiedliche Schreibweisen für das gleiche. Und ich denke auch nicht, dass man bei der zweiten Variante form2.TopLevel = false weglassen kann, es sei denn, du meinst Owner und nicht Parent (form2.Owner = form1).

Wobei ich eh kein Freund von Forms in Forms bin. Aber wenn du es schon machen willst, solltest du den dafür vorgesehenen Weg wählen: MDI, also MdiParent statt Parent.

BTW: Die Variable mainForm lässt ahnen, dass du noch was böses eingebaut hast, nämlich dass dein Subform das Mainform kennt. Das sollte nie der Fall sein und das braucht man auch nie. Selbst für die die Schreibweise mit Parent braucht man es nicht, man muss die Anweisung nur an die gleiche Stelle schreiben, wo das Controls.Add stand und kann dann wieder this statt mainForm verwenden.

herbivore

F
frost Themenstarter:in
4 Beiträge seit 2011
vor 12 Jahren

hi herbivore,

nein die kennen sich nicht. hab das nur vereinfacht hingeschrieben. ja forms in forms ich weiss ...

aber doch der effekt das die combobox fehlerhaft mit text umgeht ist durch die andere schreibweise nicht mehr der fall. keine ahnung.