winforms
Grundläggande kontroller
Sök…
Knapp
Knappar är en av de enklaste kontrollerna och används mest för att köra en kod när användaren vill ha det.
Här har vi ett riktigt enkelt fall, visa en meddelanderuta när du klickar på en knapp. Vi lägger till en knapp i ett formulär, cmdShowMessage
det cmdShowMessage
som används i koden för att identifiera objektet och ställer in knapptexten till Visa meddelande.
Vi behöver bara dubbelklicka på knappen på den visuella designern och Visual Studio genererar koden för klicket Event. Nu behöver vi bara lägga till koden för MessageBox där:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello world!");
}
Om vi kör programmet nu och klickar på knappen ser vi meddelandet visas:
Textruta
Textboxar tillåter användaren att mata in data i programmet.
Vi kommer att ändra formuläret och lägga till en textlåda så att meddelandelådan visar oss meddelandet som användaren vill ha. Nu ser vår form ut:
Och ändra sedan knappklickhändelsen för att använda texten i textrutan:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
string UserText = txtUserMessage.Text;
MessageBox.Show(UserText);
}
Som ni ser använder .Text
egenskapen .Text
i textrutan som är texten i texboxen.
Om vi kör programmet kommer vi att kunna skriva i textrutan. När vi klickar på knappen visar MessageBox texten som vi har skrivit:
Kombinationsrutan
ComboBoxes låter användaren välja ett av olika alternativ som utvecklaren tillhandahåller.
Vi kommer att ändra formuläret och lägga till en kombobox så att meddelandelistan visar oss meddelandet som användaren vill ha från en lista som vi kommer att tillhandahålla.
Efter att ha lagt till kombinationen i formuläret lägger vi nu till en lista med alternativ till kombinationsrutan. För att göra det måste vi ändra egenskapen Items
:
Nu måste vi ändra koden för klickhändelsen:
private void cmdShowMessage_Click(object sender, EventArgs e)
{
string OptionText = cboSelectOption.SelectedItem.ToString();
MessageBox.Show(OptionText);
}
Som du ser använder vi egenskapen SelectedItem
, den innehåller objektet för det valda alternativet. Eftersom vi behöver en sträng för att visa och kompilatorn inte vet om objektet är eller inte är en sträng, måste vi använda ToString()
.
Om vi kör programmet kan vi välja det alternativ vi föredrar och när vi klickar på knappen kommer meddelanderutan att visa det:
Använd händelsen SelectionChangeCommitted
att bli meddelad när en användare väljer ett objekt från komboboxen. Vi kan använda SelectedIndexChanged
händelsen, men detta höjs också när vi programmatiskt ändrar det valda objektet i komboboxen.
Kryssruta
Kryssrutan är en kontroll som gör att användaren kan få boolean
värden från användaren för en specifik fråga som "Är du ok?" .
Har en händelse som heter CheckedChanged
, som inträffar när check
ändras.
Här är en CheckBox som har en fråga "Kontrolleras?" .
Vi har fått detta MessageBox
från CheckedChanged
evenemanget,
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
bool IsChecked = checkBox1.Checked;
MessageBox.Show(IsChecked.ToString());
}
Om CheckBox är markerat - kommer IsChecked
variabel att vara true
.
Om CheckBox inte är markerat -> är IsChecked
variabeln false
.
listruta
Listbox
är en kontroll som kan innehålla samling av objekt. Listbox
liknar Combobox
men i Combobox
; Endast valda objekt är synliga för användaren. I Listbox
; alla objekt är synliga för användaren.
Hur lägger jag till objekt i ListBox?
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);
}
Utgång ;
Eller datasources
kan ges,
private void Form3_Load(object sender, EventArgs e)
{
List<string> TestList = new List<string> { "test1", "test2", "test3", "44", "55" };
listBox1.DataSource = TestList;
}
Produktion;
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";
}
Rätt utgång ;
Att ge en extern SQL-datakälla till listbox kräver, ValueMember
och DisplayMember
Om INTE ser ut så här,
Användbara händelser;
SelectedIndex_Changed;
Definiera en lista för att ge datakälla
private void Form3_Load(object sender, EventArgs e)
{
List<string> DataList = new List<string> {"test1" , "test2" , "test3" , "44" , "45" };
listBox1.DataSource = TestList;
}
I Listbox
design väljer du Listbox
och trycker på F4 eller högerklicka på belysningsikonen.
Visual Studio kommer att generera listBox1_SelectedIndexChanged
to codebehind.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int Index = listBox1.SelectedIndex;
label1.Text = Index.ToString();
}
Resultat av SelectedIndex_Changed
; (etikett längst ner visar indexet för varje vald artikel)
SelectedValue_Changed; (Datakällan är densamma som överst och du kan generera den här händelsen som SelectedIndex_Changed)
private void listBox1_SelectedValueChanged(object sender, EventArgs e)
{
label1.Text = listBox1.SelectedValue.ToString();
}
Utgång ;
NumericUpDown
NumericUpDown är en kontroll som ser ut som TextBox. Med denna kontroll kan användaren visa / välja nummer från ett intervall. Upp- och nedpilarna uppdaterar textrutvärdet.
Kontroll ser ut;
I Form_Load
intervall ställas in.
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 10;
numericUpDown1.Minimum = -10;
}
Produktion;
UpDownAlign ställer in pilarnas position;
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.UpDownAlign = LeftRightAlignment.Left;
}
Produktion;
UpButton()
Metod ökar antalet kontroller. (kan ringas var som helst. Jag använde en button
att ringa det.)
private void button1_Click(object sender, EventArgs e)
{
numericUpDown1.UpButton();
}
**Produktion
DownButton()
Metod minskar antalet på kontrollen. (kan ringas var som helst. Jag använde en button
att ringa den igen.)
private void button2_Click(object sender, EventArgs e)
{
numericUpDown1.DownButton();
}
Produktion;
Användbara händelser
ValueChanged;
Den händelsen fungerar när upp- eller nedpilen klickades.
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.
}
}
Utgång ;