- Mitglied seit
- 6 Nov 2007
- Beiträge
- 72
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo miteinander,
hier jetzt eher etwas allgemeines : Ein Gerätesteuerelement plazieren
Ich erkläre es mal anhand eines Buttons, da dies wohl das einfachste Steuerelement ist.
Um ein beliebiges Steuerelement auf einer Form zu plazieren, haben wir 2 Möglichkeiten :
Ersteres ist geeignet für statische Steuerelemente wie z.B. Hintergründe, immer bestehende Buttons usw.. Sobald jedoch eine Grafik oder ein Button häufig verändert wird, neue hinzukommen oder einige gelöscht werden, sollte man diese von Hand hinzufügen.
Wie kriege ich das Steuerelement auf die Form?
Mit der Codezeile
kann ein solches Steuerelement erzeugt werden. Damit es auf unserer Form mit von der Partie wird, ist folgender Code nötig :
"this" ist dabei unsere Form. Der Code sollte also innerhalb der zugehörigen Klasse eingefügt werden. Ansonsten kann hier auch eine Instanz eines Forms angegeben werden, z.B. Form1.Controls.Add(...). "Controls" verwaltet unsere Steuerelemente und die Funktion Add schluckt so ziemlich jedes Steuerelement, das mal irgendwann von der Klasse Controls abgeleitet wurde (dran denken, falls ihr mal eigene schreiben wollt!!!)
Nun erscheint der Button aber noch nicht. Bei Visual Studio gibt es einen Z-Index, d.h. neue Steuerelemente werden hinter den aktuellen plaziert. Doof in unserem Fall. Mit
bringen wir den Button zum Vorschein.
Wie kann ich nun Ereignisse hinzufügen?
Da wir nun keinen Button mehr haben, den wir im Designer sehen können und dem wir Events per Doppelklick zuweisen können, müssen wir das von Hand machen. Das ist halb so wild. Visual Studio macht das von alleine.
Sobald ihr "btn_neu." schreibt, öffnet sich eine Liste aller Eigenschaften und Events, dort wählt ihr "Click" aus und fügt " += " an. Schon wird euch per TAB der nächste Helfer angeboten. Ein weiterer Tab erstellt euch sogar noch den Funktionskopf.
Manuell lautet der Code :
So könnt ihr auch weitere Funktionen angeben, die ausgeführt werden sollen. Z.B. :
Diese werden dann nacheinander von oben nach unten aufgerufen.
Hier das komplette Codebeispiel :
Jedes Steuerelement hat natürlich seine eigenen Events. Visual Studio zeigt sie euch, sobald ihr einen Punkt hinter das Objekt setzt. Falls der Code-Assistent nicht automatisch geöffnet wird, dann hilft ein beherztes STRG+Leertaste weiter.
Viel Spaß!!!
hier jetzt eher etwas allgemeines : Ein Gerätesteuerelement plazieren
Ich erkläre es mal anhand eines Buttons, da dies wohl das einfachste Steuerelement ist.
Um ein beliebiges Steuerelement auf einer Form zu plazieren, haben wir 2 Möglichkeiten :
- per Drag'n'Drop aus der Toolbox direkt auf das Form
- von Hand programmieren
Ersteres ist geeignet für statische Steuerelemente wie z.B. Hintergründe, immer bestehende Buttons usw.. Sobald jedoch eine Grafik oder ein Button häufig verändert wird, neue hinzukommen oder einige gelöscht werden, sollte man diese von Hand hinzufügen.
Wie kriege ich das Steuerelement auf die Form?
Mit der Codezeile
Code:
Button btn_neu = new Button();
Code:
this.Controls.Add(btn_neu);
"this" ist dabei unsere Form. Der Code sollte also innerhalb der zugehörigen Klasse eingefügt werden. Ansonsten kann hier auch eine Instanz eines Forms angegeben werden, z.B. Form1.Controls.Add(...). "Controls" verwaltet unsere Steuerelemente und die Funktion Add schluckt so ziemlich jedes Steuerelement, das mal irgendwann von der Klasse Controls abgeleitet wurde (dran denken, falls ihr mal eigene schreiben wollt!!!)
Nun erscheint der Button aber noch nicht. Bei Visual Studio gibt es einen Z-Index, d.h. neue Steuerelemente werden hinter den aktuellen plaziert. Doof in unserem Fall. Mit
Code:
btn_neu.BringToFront();
Wie kann ich nun Ereignisse hinzufügen?
Da wir nun keinen Button mehr haben, den wir im Designer sehen können und dem wir Events per Doppelklick zuweisen können, müssen wir das von Hand machen. Das ist halb so wild. Visual Studio macht das von alleine.
Sobald ihr "btn_neu." schreibt, öffnet sich eine Liste aller Eigenschaften und Events, dort wählt ihr "Click" aus und fügt " += " an. Schon wird euch per TAB der nächste Helfer angeboten. Ein weiterer Tab erstellt euch sogar noch den Funktionskopf.
Manuell lautet der Code :
Code:
btn_neu.Click += new EventHandler(btn_neu_Click);
So könnt ihr auch weitere Funktionen angeben, die ausgeführt werden sollen. Z.B. :
Code:
btn_neu.Click += new EventHandler(btn_neu_Click);
btn_neu.Click += new EventHandler(btn_neu_Click2);
btn_neu.Click += new EventHandler(btn_neu_Click3);
Diese werden dann nacheinander von oben nach unten aufgerufen.
Hier das komplette Codebeispiel :
Code:
using System;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Button btn_neu = new Button();
this.Controls.Add(btn_neu);
btn_neu.BringToFront();
btn_neu.Click += new EventHandler(btn_neu_Click);
btn_neu.Click += new EventHandler(btn_neu_Click2);
}
void btn_neu_Click(object sender, EventArgs e)
{
MessageBox.Show("ich bin nr. 1");
}
void btn_neu_Click2(object sender, EventArgs e)
{
MessageBox.Show("ich bin nr. 2");
}
}
}
Jedes Steuerelement hat natürlich seine eigenen Events. Visual Studio zeigt sie euch, sobald ihr einen Punkt hinter das Objekt setzt. Falls der Code-Assistent nicht automatisch geöffnet wird, dann hilft ein beherztes STRG+Leertaste weiter.
Viel Spaß!!!