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.

ange bildbeskrivning här

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:

ange bildbeskrivning här

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:

ange bildbeskrivning här

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:

ange bildbeskrivning här

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 :

ange bildbeskrivning här

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:

ange bildbeskrivning här

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?" .

ange bildbeskrivning här

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 ;

Resultat

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;

Result2

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 ;

ange bildbeskrivning här

Att ge en extern SQL-datakälla till listbox kräver, ValueMember och DisplayMember

Om INTE ser ut så här,

ange bildbeskrivning 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.

ange bildbeskrivning här

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)

ange bildbeskrivning här

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 ;

ange bildbeskrivning här

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;

ange bildbeskrivning här

I Form_Load intervall ställas in.

private void Form3_Load(object sender, EventArgs e)
    {
        numericUpDown1.Maximum = 10;
        numericUpDown1.Minimum = -10; 
    }

Produktion;

ange bildbeskrivning här

UpDownAlign ställer in pilarnas position;

 private void Form3_Load(object sender, EventArgs e)
        {
            numericUpDown1.UpDownAlign = LeftRightAlignment.Left;
            
        }

Produktion;

ange bildbeskrivning här

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

ange bildbeskrivning här

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;

ange bildbeskrivning här

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 ;

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow