Controls Wolfgang Kluge

Bei den Controls unter .net hat sich (naturgemäß) auch einiges getan.
Eine kleine Übersicht ist hier zu finden..

Allgemein:

X, Y, Width und Height
Die wohl immer genutzten Eigenschaften Top, Left, Width und Height gibt es natürlich noch, allerdings in einer etwas anderen Form.
Location bestimmt den Startpunkt, die obere linke Ecke zum Container. Bei Location handelt es sich um ein Objekt, welches die beiden Eigenschaften X und Y aufnehmen kann und auch aufnimmt.

Ähnlich verhällt es sich mit der Eigenschaft(bzw. dem Objekt) Size. Nur handelt es sich hierbei natürlich um Width und Height.
Die (imho) beste Nachricht dabei ist aber, dass es sich jetzt nicht mehr um Twips, sondern um Pixel handelt... Nie wieder umrechnen ;)
ToolTipText
Zu erklären ist dieser Punkt nur schwer...
Also, es fällt bei jedem Standardcontrol die Eigenschaft ToolTipText weg.
Aber keine Angst.. So wie man nun zum Ziel kommt ist es auch nicht schlecht, denn der ToolTipText ist nun ein eigenes Control.
Es können auch gleich mehrere ToolTip-Controls der Form hinzugefügt werden.
Wenn man dies getan hat, stehen einem wiederum bei (fast) jedem sichtbaren Control Eigenschaften zur verfügung die zB so lauten könnten : "ToolTip On ToolTip1" (wobei ToolTip1 der Name des ToolTip-Controls ist).

Der Sinn dahinter ist leicht zu erklären. Da man jeden Tooltip seinen Bedürfnissen anpassen kann(mehr dazu beim Control selbst)
Auch kann man sehr leicht zwischen Zuständen hin und herwechseln, indem man die Eigenschaft Active eines ToolTip-Controls auf False stellt.. Dieser wird dann nicht angezeigt. So kann man natürlich auch steuern, dass gar kein Tooltip mehr angezeigt wird...usw.
Genauso können auch 2 Tooltips gleichzeitig(oder mit unterschiedlicher Verzögerung) angezeigt werden..
HelpProvider
Ähnlich ist es mit dem HelpProvider-Control.
Auch dieses ist ein unsichtbares Objekt, und sobald es hinzugefügt wurde steht bei jedem Control drei Eigenschaften (für jedes HelpProvider-Control) mehr zur Verfügung.
Diese Lauten ca. so: "HelpString on HelpProvider1", "HelpTopic on HelpProvider1" und "ShowHelp on HelpProvider1".
Wohl fast selbsterklärend, was man damit tun kann.
AllowDrop
Die Eigenschaft AllowDrop hat jedes sichtbare Standardcontrol bekommen..
Wenn dieses auf True gestellt wird, empfängt das Control Drag&Drop-Nachrichten, die dann wiederum ausgewertet werden können.
Caption
Die Eigenschaft Caption, die von vielen Controls (Label, Frame..) ja bekannt ist, heißt nun durchgehend Text.
Also nicht gleich erschrecken, wenn man Caption beim Label-Control nicht findet ;)
Anchor
Die Eigenwschaft Anchor ist was ganz neues..
Controls in dotnet sind in der Lage, mehr oder weniger automatisch zu Resizen.
Es können dabei die Eigenschaften Left, Right, Top und Bottom miteinander verknüpft werden, oder auch auf None gestellt werden.
Das ganze meiner Meinung nach schwer zu erklären.. aber ich versuchs mal ;)

TopLeft ist die Standardeinstellung und damit funktioniert alles genauso wie in VB6.
Wenn man nun Top weglässt, dann ist das Control oben nicht mehr verankert. Damit wird das Control beim vergrößern/verkleinern der Form vertikal "mitgezogen".
Genauso, wenn man Left weglässt (dort dann eben Horizontal)
Andersrum verhällt es sich, wenn man zB All (LeftTopRightBottom) definiert, dann bleibt das Control immer an der gleichen Stelle, wird aber beim Resize der Form vergrößert/verkleinert.
Und wenn gar nichts angegeben wird(None), dann verschiebt sich das Control nur noch.

Also am besten man spielt mal damit etwas rum..Das kann eine Menge Code im Resize-Event der Form ersparen ;)
Ach ja,.. das ganze Funktioniert schon zur Entwicklungszeit...
ContextMenu
ContextMenu ist beides.
Eine Eigenschaft und ein Control. Als Eigenschaft stehen einem alle ContextMenu-Controls zur verfügung..
Es kann also zur Entwicklungszeit definiert werden, welches ContextMenu bei welchem Control angezeigt wird...(Natürlich auch noch zur Laufzeit)
Dock
Dock heißt die Eigenschaft, die in VB6 noch Appearence hieß. Der Unterschied zu VB6 liegt darin, dass jedes Control diese Eigenschaft besitzt.
Wenn man Controls hat, die nicht in der Höhe veränderbar sind(zB ComboBox oder NumericUpDown), und diese Links ausrichtet(volle Höhe), dann gibt dies noch lange keinen Fehler.. es wird dann eben links-oben Ausgerichtet.


Weitere Details findet man bei den entsprechenden Controls selbst.