Discussion:
ToolStripComboBox und AltGr+? Tastenkombination
(zu alt für eine Antwort)
Jon Steinberg
2006-09-25 11:41:34 UTC
Permalink
Hallo NG,

ich hab ein sehr mühsames Problem, ich hoffe ihr könnt mir wieder mal
weiterhelfen :-)

Ich werdende in einer kleinen WinFrom den ToolStripContainer, der
wiederum meherere ToolStrips (genau 3) beinhaltet und wobei sich in
diesen ToolStrips auch eine ToolStripComboBox und eine ToolStripTextBox
befinden.

Die ToolStripComboBox soll zur Auswahl bzw. Eingabe eines
Verzeichnispfades dienen. Das würde auch ganz gut funktionieren, wäre
dafür nicht die Eingabe eines Backslash (\) über AltGr+?
Tastenkombination nötig.

Die verursacht nämlich nicht, wie es zuerwarten wäre, dass in der
ComboBox ein \ erscheint - nein, mit AltGr + ? kann man zwischen dein
einzelnen ToolStrips innerhalb des ToolStripContainers hin- und
herwechseln. Das gleiche tritt auch auf, wenn man die Tastenkombination
AltGr+9, also für ], drückt.

Wichtig ist eventuell, dass ich sowohl ein englisches Windows XP als auch
ein einglisches Visual Studio 2005 einsetze, allerdings natürlich mit
deutschen Tastatur-Layout.

Eine Lösung die ich verfolgt habe war, über das Event "PreviewKeyDown"
und e.IsInputKey = True die korrekte Eingabe des Zeichens zu erzwingen -
allerdings haben ausgerechnet ToolStripComboBox und ToolStripTextBox
dieses Event nicht, sehr wohl aber zB die übergeordneten ToolStrips oder
der ToolStrip Container. Das hilft mir aber halt auch nicht weiter ;-)

Hatte noch keiner von Euch dieses Problem?

danke & lg
j.
Bernhard König
2006-09-30 10:45:28 UTC
Permalink
Post by Jon Steinberg
Hatte noch keiner von Euch dieses Problem?
Eine der vielen Unzulänglichkeiten der "neuen Features" von .NET 2.0 - per:

AddHandler MyToolStripTextBox.Control.PreviewKeyDown, _
AddressOf MyToolStripTextBox_PreviewKeyDown

manuell ein PreviewKeyDown-Ereignis für die ToolStripTextBox "anhängen"
und dort dann per e.IsInputKey = True AltGr+\ bzw. alle anderen
"Toolbarwechselnden" Tastenkombinationen in Eingabezeichenfolgen umwandeln.

Warum so ein wichtiges Ereignis nicht per default auch für dieses
Control angeboten wird - i.B. da allerlei Tastenkombinationen i.B. auf
nicht-englischen Keyboards nicht das bewirken, was sie sollten - ist mir
schleierhaft.

Genauso wie dutzende andere Inkonsistenzen, Blödheiten, Bugs und nicht
zu Ende gedachte Features in .NET 2.0 und VS2005. Aktuell zB kämpfe ich
gerade mit My.Settings bzw. generell mit den neuen Settings-Features -
die Funktion, Settings an Control-Properties zu binden, verursacht zB
bei Forms (Größe, WindowState, Location) dass ein Fenster nach dem
Minimieren nicht mehr geöffnet werden kann weil sich Gets und Sets
gegenseitig aufheben. Wieder ein neues Feature, das man praktisch nicht
verwenden kann und besser ohne Settings-binding manuell umsetzt.

Nicht, dass ich .NET nicht mehr mögen würde - ich bin ein richtiger Fan
;-) ... aber die qualitative Verschlechterung gegenüber VS2003 / .NET
1.1 ist eklatant. Schade, dass MS es nicht mehr geschafft hat, die neue
Version auch so wunderbar stimmig, problemlos und funktional zu
gestalten. Der Feature-Overkill war wohl zu viel des Guten.

lg
Bernhard König

Loading...