winforms
Basisbediening
Zoeken…
Knop
Knoppen zijn een van de eenvoudigste bedieningselementen en worden meestal gebruikt om code uit te voeren wanneer de gebruiker dat wil.
Hier hebben we een heel eenvoudig geval, tonen een berichtenvak wanneer op een knop wordt geklikt. We voegen een knop toe aan een formulier, noemen het cmdShowMessage
zoals gebruikt in de code om het object te identificeren en stellen de tekst van de knop in op Bericht weergeven.
We hoeven alleen maar te dubbelklikken op de knop op de visuele ontwerper en Visual Studio genereert de code voor de klikgebeurtenis. Nu moeten we alleen de code voor de MessageBox toevoegen:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello world!");
}
Als we het programma nu uitvoeren en op de knop klikken, wordt het bericht weergegeven:
Tekstveld
Met tekstboxen kan de gebruiker gegevens in het programma invoeren.
We gaan het formulier wijzigen en een tekstvak toevoegen zodat het berichtenvak ons het bericht laat zien dat de gebruiker wil. Nu ziet ons formulier eruit als:
En wijzig vervolgens de knopklikgebeurtenis om de tekst van het tekstvak te gebruiken:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
string UserText = txtUserMessage.Text;
MessageBox.Show(UserText);
}
Zoals u kunt zien, gebruiken we de eigenschap .Text
van het tekstvak, de tekst in het tekstvak.
Als we het programma uitvoeren, kunnen we in het tekstvak schrijven. Wanneer we op de knop klikken, toont de MessageBox de tekst die we hebben geschreven:
ComboBox
Met ComboBoxen kan de gebruiker een van de verschillende opties kiezen die door de ontwikkelaar worden geboden.
We gaan het formulier wijzigen en een combobox toevoegen, zodat de berichtenbox ons het bericht toont dat de gebruiker wil uit een lijst die we zullen verstrekken.
Na het toevoegen van de combo aan het formulier voegen we nu een lijst met opties toe aan de combo. Om dit te doen moeten we de Items
eigenschap wijzigen:
Nu moeten we de code van de click-gebeurtenis wijzigen:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
string OptionText = cboSelectOption.SelectedItem.ToString();
MessageBox.Show(OptionText);
}
Zoals u kunt zien, gebruiken we de eigenschap SelectedItem
, deze bevat het object van de geselecteerde optie. Omdat we een tekenreeks nodig hebben om te tonen en de compiler niet weet of het object een tekenreeks is of niet, moeten we de methode ToString()
gebruiken.
Als we het programma uitvoeren, kunnen we de gewenste optie kiezen en wanneer we op de knop klikken, wordt dit in het berichtvenster weergegeven:
Gebruik de gebeurtenis SelectionChangeCommitted
om een melding te ontvangen wanneer een gebruiker een item uit de combobox selecteert. We zouden de gebeurtenis SelectedIndexChanged
kunnen gebruiken, maar dit wordt ook naar voren gebracht als we het geselecteerde item in de combobox programmatisch wijzigen.
CheckBox
Selectievakje is een besturingselement waarmee de gebruiker boolean
waarden van de gebruiker kan krijgen voor een specifieke vraag als "Gaat het?" .
Heeft een gebeurtenis met de naam CheckedChanged
, die optreedt wanneer de eigenschap check
wordt gewijzigd.
Hier is een CheckBox met de vraag "Is aangevinkt?" .
We hebben deze MessageBox
van het evenement CheckedChanged
,
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
bool IsChecked = checkBox1.Checked;
MessageBox.Show(IsChecked.ToString());
}
Als CheckBox is aangevinkt, is de variabele IsChecked
true
.
Als CheckBox niet is aangevinkt, is de variabele IsChecked
false
.
Keuzelijst
Listbox
is een besturingselement dat een verzameling objecten kan bevatten. Listbox
is vergelijkbaar met Combobox
maar in Combobox
; Alleen geselecteerde items zijn zichtbaar voor de gebruiker. In Listbox
; alle items zijn zichtbaar voor de gebruiker.
Hoe items aan ListBox toe te voegen?
private void Form3_Load(object sender, EventArgs e)
{
string test = "Trial";
string test2 = "45";
int numberTest = 43;
decimal decimalTest = 130;
listBox1.Items.Add(test);
listBox1.Items.Add(test2);
listBox1.Items.Add(numberTest);
listBox1.Items.Add(decimalTest);
}
Uitgang ;
Of datasources
kunnen worden gegeven,
private void Form3_Load(object sender, EventArgs e)
{
List<string> TestList = new List<string> { "test1", "test2", "test3", "44", "55" };
listBox1.DataSource = TestList;
}
Output;
private void Form3_Load(object sender, EventArgs e)
{
SqlConnection Connection = new SqlConnection("Server=serverName;Database=db;Trusted_Connection=True;"); //Connetion to MS-SQL(RDBMS)
Connection.Open(); //Connection open
SqlDataAdapter Adapter = new SqlDataAdapter("Select * From TestTable", Connection); // Get all records from TestTable.
DataTable DT = new DataTable();
Adapter.Fill(DT); // Fill records to DataTable.
listBox1.DataSource = DT; // DataTable is the datasource.
listBox1.ValueMember = "TestID";
listBox1.DisplayMember= "TestName";
}
De juiste output ;
Het geven van een externe sql-gegevensbron aan listbox vereist ValueMember
en DisplayMember
Zo NIET , dan ziet het er zo uit,
Handige evenementen;
SelectedIndex_Changed;
Definieer een lijst om gegevensbron te geven
private void Form3_Load(object sender, EventArgs e)
{
List<string> DataList = new List<string> {"test1" , "test2" , "test3" , "44" , "45" };
listBox1.DataSource = TestList;
}
Selecteer Listbox
het ontwerp van het formulier Listbox
en druk op F4 of klik aan de rechterkant op het verlichte pictogram.
Visual Studio genereert listBox1_SelectedIndexChanged
naar listBox1_SelectedIndexChanged
.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int Index = listBox1.SelectedIndex;
label1.Text = Index.ToString();
}
Resultaat van SelectedIndex_Changed
; (label onderaan toont de index van elk geselecteerd item)
SelectedValue_Changed; (De gegevensbron is hetzelfde als bovenaan en u kunt deze gebeurtenis genereren zoals SelectedIndex_Changed)
private void listBox1_SelectedValueChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedValue.ToString();
}
Uitgang ;
NumericUpDown
NumericUpDown is controle die eruit ziet als TextBox. Met deze besturing kan de gebruiker een nummer uit een bereik weergeven / selecteren. Pijlen omhoog en omlaag werken de waarde van het tekstvak bij.
Besturing ziet eruit als;
In Form_Load
kan een bereik worden ingesteld.
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 10;
numericUpDown1.Minimum = -10;
}
Output;
UpDownAlign stelt de positie van pijlen in;
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.UpDownAlign = LeftRightAlignment.Left;
}
Output;
UpButton()
Methode verhoogt het nummer van het besturingselement. (kan overal worden opgeroepen. Ik gebruikte een button
om het te bellen.)
private void button1_Click(object sender, EventArgs e)
{
numericUpDown1.UpButton();
}
** Output
DownButton()
Methode verlaagt het nummer van het besturingselement. (kan overal worden opgeroepen. Ik gebruikte een button
om het opnieuw te bellen.)
private void button2_Click(object sender, EventArgs e)
{
numericUpDown1.DownButton();
}
Output;
Handige evenementen
ValueChanged;
Die gebeurtenis zal werken wanneer op de pijl omhoog of omlaag wordt geklikt.
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
decimal result = numericUpDown1.Value; // it will get the current value
if (result == numericUpDown1.Maximum) // if value equals Maximum value that we set in Form_Load.
{
label1.Text = result.ToString() + " MAX!"; // it will add "MAX" at the end of the label
}
else if (result == numericUpDown1.Minimum) // if value equals Minimum value that we set in Form_Load.
{
label1.Text = result.ToString() + " MIN!"; // it will add "MIN" at the end of the label
}
else
{
label1.Text = result.ToString(); // If Not Max or Min, it will show only the number.
}
}
Uitgang ;