.
Anmeldung | Registrieren | Hilfe | Posteingang
Suchen
Home Foren News Member Offers Termine Developer Blogs Knowledge Base

Navigation

Navigationslinks überspringen.
Knowledge Base reduzierenKnowledge Base
Tutorials reduzierenTutorials
Webentwicklung
Cliententwicklung
Datenbankentwicklung
IT Professional
Sharepoint
Sprachspezifisch reduzierenSprachspezifisch
C#
Visual Basic
C++
XAML
SQL
JavaScript
Erfahrungsberichte reduzierenErfahrungsberichte
Entwicklersoftware
Bücher
FAQ Grundlagen

Verknüpfungen

  • Knowledge Base durchsuchen
  • Hilfe zur Knowledge Base
  • RSS Feed
  • Twitter

Custom Toolstrip Control

In diesem Tutorial wird ein CustomToolStripItem geschrieben, mit dessen Hilfe ein DateTimePicker in einem ToolStrip angezeigt werden kann. Um dieses Tutorial zu realisieren wird folgendes benötigt


  • Visual Studio 2005 (oder eine vergleichbare IDE)
  • Microsoft .Net Framework 2.0


Realisierung


Objekt Struktur
Damit CustomControls in einem ToolStrip oder einem MenuStrip verwendet werden können, müssen Sie von einem bestehenden ToolStripItem oder dem ToolStripControlHost erben.


Exemplarische Realisierung
Hier wird nun anhand eines ToolStripDateTimeChooser exemplarisch die vorgehensweise dargestellt.

image

 

Klassendefinition

1: public partial class ToolStripDateTimeChooser : ToolStripControlHost
2: {
3: …
4: }

 

Konstruktor

1: public ToolStripDateTimeChooser() : base(new FlowLayoutPanel())
2: {
3: ….
4: }

 

Realisierung

1: public partial class ToolStripDateTimeChooser : ToolStripControlHost
2: {
3:     // Value Changed
    Event deklarieren um das Event
4:     //
                    von außen Zugreifbar zu machen
5:     public event EventHandler ValueChanged;
6:     //
                    Eine neue Instanz des DateTimePickers erstellen
7:     private DateTimePicker dtPicker = new DateTimePicker();
8:     private FlowLayoutPanel flPanel;
9:  
10:     //Hier geben wir ein FlowPanel rein damit die Controls
          nebeneinander angeordnet werden
11:     public ToolStripDateTimeChooser() : base(new FlowLayoutPanel())
12:     {
13:         InitializeComponent();
14:         // Das im Konstruktor erstellte Panel in die lokale Variable
                    schieben
15:         this.flPanel = (FlowLayoutPanel)base.Control;
16:         // Einige std. Formatierungen
17:         flPanel.BackColor = System.Drawing.Color.Transparent;
18:         dtPicker.Format = DateTimePickerFormat.Short;
19:         flPanel.Controls.Add(dtPicker);
20:         dtPicker.Width = 120;
21:         // Das
    ValueChanged Event implementieren
22:         dtPicker.ValueChanged += new EventHandler(dateTimePicker_ValueChanged);
23:     }
24:     
25:     // ValueChanged
    nach außen werfen
26:     void dateTimePicker_ValueChanged(object sender, EventArgs e)
27:     {
28:         if (ValueChanged != null)
29:         {
30:             ValueChanged(this, e);
31:         }
32:     }
33:     
34:     //
                    das aktuell gewählte Datum nach außen verfügbar machen
35:     public DateTime Value
36:     {
37:         get
38:         {
39:             return dtPicker.Value;
40:         }
41:         set
42:         {
43:             dtPicker.Value = value;
44:         }
45:     }
46: }

 

Designer Support


Damit das CustomControl auch im Designer verwendet werden kann, muss nur noch das ToolStripItemDesignerAvailability-Attribut für die Klasse definiert werden.

1: [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.All)]
2: public partial class ToolStripDateTimeChooser : ToolStripControlHost
3: {
4:  
5: }

 

Für die ToolStripItemDesignerAvailability Enumeration gibt es folgende Values

  • All
  • ContextMenuStrip
  • MenuStrip
  • None
  • StatusStrip
  • ToolStrip
von ThorstenHans, 22.07.2008 zugeordnet zu C# , Cliententwicklung .

Kommentare

Es sind noch keine Kommentare vorhanden.

Eigener Kommentar

Sie müssen angemeldet sein, um ein Kommentar zu erstellen.
  • Schwierigkeit: Einsteiger
  • Views: 2324
  • Zur Druckversion
  • Artikel von ThorstenHans

Kick it on dotnet-kicks.de

Artikel

Autor

Kick it!

Wenn ihnen dieser Artikel gefällt, bitte "kicken" sie ihn.

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum