Announcement

Collapse
No announcement yet.

Größe von ToolBarButton automatisch anpassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Größe von ToolBarButton automatisch anpassen

    Hallo,

    ich habe ein Verständnisproblem bei der ToolBar- bzw. der ToolBarButton-Klasse. Ich denke, dass das Verhalten korrekt ist, allerdings kann ich es nicht wirklich nachvollziehen.

    Also zunächst erzeuge ich eine Symbolleiste und platziere einige Schaltflächen:

    Code:
    this.toolBar = new ToolBar();
    this.toolButton1 = new ToolBarButton();
    this.toolButton2 = new ToolBarButton();
    this.toolButton3 = new ToolBarButton();
    
    this.toolButton1.Name = "toolButton1";
    this.toolButton1.Text = "Button 1";
    
    this.toolButton2.Name = "toolButton2";
    this.toolButton2.Text = "ToolBar Button 2";
    
    this.toolButton3.Name = "toolButton3";
    this.toolButton3.Text = "3";
    
    this.toolBar.Name = "toolBar";
    this.toolBar.TabIndex = 0;
    this.toolBar.ButtonClick += new ToolBarButtonClickEventHandler(this.ToolBar_ButtonClick);
    this.toolBar.Buttons.AddRange(new ToolBarButton[]
    {
      this.toolButton1,
      this.toolButton2,
      this.toolButton3
    });
    Nun zu meinem Problem:
    Ich habe mir die Größe der ToolBar mal ausgeben lassen. In meinem Fall steht Width auf 800 und Height auf 42 (Tahoma, 8.25F). Die Breite geht in Ordnung, da sie an die Formularbreite angepasst wird. Die Höhe erscheint mir allerdings zu groß. Die Buttons dürften doch höchstens 25 Pixel hoch sein, wieso ist die ganze ToolBar dann gleich fast doppelt so hoch?
    Völlig schleierhaft ist mir, wie die Breite der einzelnen Button zustandekommt. Laut MSDN sollte sich die Breite der einzelnen Schaltflächen immer dynamisch an die Breite der Aufschrift anpassen. In meinem obigen Beispiel müsste ich also drei unterschiedlich breite Button erhalten. Die Eigenschaft ToolBar.ButtonSize sollte dann die Dimension des "größten" Button enthalten.
    Aber egal wie viele Schaltflächen ich hinzufüge oder wie viel Text auf den Button steht, die Eigenschaft ButtonSize bleibt immer auf {Width=39,Height=36} stehen. Tja und genau das verstehe ich halt nicht.
    Theoretisch könnte ich ButtonSize natürlich auch manuell setzen, dann habe ich aber gleich zwei weitere Probleme. Erstens sind dann alle Button gleich groß und passen sich nicht mehr dynamisch der Aufschrift an und zweitens müsste ich dann wissen, welche Ausmaße mein größter Button hat. Da die ToolBarButton-Klasse aber keine Eigenschaft für Breite und Höhe hat weiß ich nicht, wie ich an diese Angaben kommen soll. Einfach irgendwelche Pixelwerte setzen und das Ergebnis anschauen (also experimentieren) scheint mir keine sehr brauchbare Lösung zu sein, zumal sich das dann schwierig gestalten dürfte, wenn ich neue Button auch zur Laufzeit hinzufügen möchte.
    Also alles etwas problematisch!

    Viele Grüße

  • #2
    ToolBar ist alter NET 1.0 Quatsch und wurde fast sofort durch die ToolStrips ersetzt. Microsoft hat sich nur nie getraut die wieder rauszuwerfen. Was ich damit sagen will, das benutzt eigentlich niemand insofern wirst du auch niemanden oder nur sehr unwahrscheinlich jemanden finden der sich damit auskennt. Und wenn dann wird er dir vermutlich sagen das das eben Buggy ist da das seit 7-8 Jahren nicht mehr gepflegt wird und maximal noch rein zufällig irgendwie funktioniert. Nimm einen Toolstrip.

    Comment

    Working...
    X