2012-04-06 14 views
2

Ich erstelle einen Webbrowser mit Registerkarten. Um die URL einzugeben, versuche ich einen MenuStrip mit seiner ToolStripMenuItem als Textbox zu setzen. Ich erstelle alle Kontrollen dynamisch und ich habe 2 Fragen.C# - Dynamische Erstellung von MenuStrip

1). Wie kann ich eine Textbox als ToolStripMenuItem aus dem Code einfügen?

(für diesen Screenshot nur habe ich das Menustrip zur Entwurfszeit)

enter image description here

2). Wie kann ich die Breite ändern?

Danke euch allen.

+1

Einfach im Code auszuführen, indem der DropDownItems-Auflistung des Menüelements eine ToolStripTextBox hinzugefügt wird. Nicht sehr gute Benutzeroberfläche obwohl, es ist nicht offensichtlich, dass es Textfeld ist, bis der Benutzer es auswählt. Und es gibt keine gute Möglichkeit zu signalisieren "Ich bin fertig mit dem Tippen!" –

+0

@HansPassant: Ich stimme zu. Es sieht überhaupt nicht wie ein Textfeld aus! Ich benutze 'Focus()' Methode, um den Cursor in die Textbox zu fokussieren, wenn eine neue Registerkarte erstellt wird. – Isuru

Antwort

2

können Sie verwenden ToolStripTextBox

toolStripTextBox1 = new System.Windows.Forms.ToolStripTextBox(); 
    toolStripTextBox1.Size = new System.Drawing.Size(100, 25); 
    toolStrip1.Items.Add(toolStripTextBox1); 
2

Erstellen Sie die Kontrolle:

var textBox = new System.Windows.Forms.ToolStripTextBox(); 

einige Eigenschaften ein:

textBox.Name = "someName"; 
textBox.Size = new System.Drawing.Size(300, 25); // width, height 

Fügen Sie es zu dem ToolStrip:

toolStrip.Items.Add(textBox);