Szukaj…


Przycisk

Przyciski są jednym z najprostszych elementów sterujących i są najczęściej używane do wykonywania kodu, gdy użytkownik tego chce.

Tutaj mamy naprawdę prosty przypadek: po kliknięciu przycisku wyświetla się okno komunikatu. Dodajemy przycisk do formularza, cmdShowMessage go cmdShowMessage tak jak jest używany w kodzie do identyfikacji obiektu i ustawiamy tekst przycisków na Pokaż wiadomość.

wprowadź opis zdjęcia tutaj

Musimy tylko dwukrotnie kliknąć przycisk projektanta wizualnego, a Visual Studio wygeneruje kod dla zdarzenia kliknięcia. Teraz wystarczy dodać tam kod dla MessageBox:

private void cmdShowMessage_Click(object sender, EventArgs e)
{
  MessageBox.Show("Hello world!");
}

Jeśli uruchomimy teraz program i klikniemy przycisk, zobaczymy komunikat:

wprowadź opis zdjęcia tutaj

Pole tekstowe

TextBoxes pozwalają użytkownikowi na wprowadzanie danych do programu.

Zmodyfikujemy formularz i dodamy pole tekstowe, aby w oknie wiadomości wyświetlała się wiadomość, której chce użytkownik. Teraz nasz formularz wygląda następująco:

wprowadź opis zdjęcia tutaj

A następnie zmodyfikuj zdarzenie kliknięcia przycisku, aby użyć tekstu pola tekstowego:

private void cmdShowMessage_Click(object sender, EventArgs e)
{
  string UserText = txtUserMessage.Text;
  MessageBox.Show(UserText);
}

Jak widać, korzystamy z właściwości .Text pola tekstowego, czyli tekstu zawartego w polu tekstowym.

Jeśli uruchomimy program, będziemy mogli pisać w polu tekstowym. Po kliknięciu przycisku MessageBox wyświetli napisany przez nas tekst:

wprowadź opis zdjęcia tutaj

ComboBox

ComboBoxy pozwalają użytkownikowi wybrać jedną z różnych opcji dostarczonych przez programistę.

Zmodyfikujemy formularz i dodamy combobox, aby skrzynka wiadomości pokazywała nam wiadomość, którą użytkownik chce z listy, którą dostarczymy.

Po dodaniu kombinacji do formularza dodajemy teraz listę opcji do kombinacji. W tym celu musimy zmodyfikować właściwość Items :

wprowadź opis zdjęcia tutaj

Teraz musimy zmodyfikować kod zdarzenia kliknięcia:

private void cmdShowMessage_Click(object sender, EventArgs e)
{
  string OptionText = cboSelectOption.SelectedItem.ToString();
  MessageBox.Show(OptionText);
}

Jak widać, używamy właściwości SelectedItem , która zawiera obiekt wybranej opcji. Ponieważ potrzebujemy łańcucha do wyświetlenia, a kompilator nie wie, czy obiekt jest łańcuchem, czy nie, musimy użyć metody ToString() .

Jeśli uruchomimy program, będziemy mogli wybrać preferowaną opcję, a po kliknięciu przycisku pojawi się okno komunikatu:

wprowadź opis zdjęcia tutaj

Aby otrzymać powiadomienie, gdy użytkownik wybierze element ze skrzynki zbiorczej, użyj zdarzenia SelectionChangeCommitted . Możemy użyć zdarzenia SelectedIndexChanged , ale pojawia się to również, gdy programowo zmieniamy wybrany element w combobox.

CheckBox

Pole wyboru jest formantem, który pozwala użytkownikowi na uzyskanie wartości boolean od użytkownika w przypadku specjalnego pytania, takiego jak „Czy wszystko w porządku?” .

Ma zdarzenie o nazwie CheckedChanged , które występuje przy każdej zmianie właściwości check .

Oto CheckBox z pytaniem „Czy sprawdzono?” .

wprowadź opis zdjęcia tutaj

Mamy wiadomość MessageBox ze zdarzenia CheckedChanged ,

private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            bool IsChecked = checkBox1.Checked; 
            MessageBox.Show(IsChecked.ToString());
        }

Jeśli CheckBox jest zaznaczony -> Zmienna IsChecked będzie true .

Jeśli CheckBox nie jest zaznaczony -> zmienna IsChecked będzie false .

Skrzynka na listy

Listbox to kontrolka, która może zawierać kolekcję obiektów. Listbox jest podobny do Combobox ale w Combobox ; Tylko wybrane elementy są widoczne dla użytkownika. W Listbox ; wszystkie elementy są widoczne dla użytkownika.

Jak dodawać elementy do 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);
        }

Wyjście ;

Wynik

Lub można podać datasources danych,

private void Form3_Load(object sender, EventArgs e)
        {
            List<string> TestList = new List<string> { "test1", "test2", "test3", "44", "55" };
            listBox1.DataSource = TestList;
        }

Wynik;

Wynik 2

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";
        }

Prawidłowa wydajność ;

wprowadź opis zdjęcia tutaj

Podanie zewnętrznego źródła danych SQL do ValueMember listy wymaga ValueMember i DisplayMember

Jeśli NIE , będzie to wyglądać tak,

wprowadź opis zdjęcia tutaj

Przydatne wydarzenia;

SelectedIndex_Changed;

Zdefiniuj listę, aby podać źródło danych

private void Form3_Load(object sender, EventArgs e)
        {
            List<string> DataList = new List<string> {"test1" , "test2" , "test3" , "44" , "45" };
            listBox1.DataSource = TestList;
        }

Przy projekcie formularza wybierz Listbox i naciśnij F4 lub po prawej stronie kliknij ikonę błyskawicy.

wprowadź opis zdjęcia tutaj

Visual Studio wygeneruje listBox1_SelectedIndexChanged na listBox1_SelectedIndexChanged .

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int Index = listBox1.SelectedIndex;
            label1.Text = Index.ToString();
        }

Wynik SelectedIndex_Changed ; (etykieta na dole pokaże indeks każdego wybranego elementu)

wprowadź opis zdjęcia tutaj

SelectedValue_Changed; (Źródło danych jest takie samo jak na górze i możesz wygenerować to zdarzenie jak SelectedIndex_Changed)

private void listBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            label1.Text = listBox1.SelectedValue.ToString();
        }

Wyjście ;

wprowadź opis zdjęcia tutaj

NumericUpDown

NumericUpDown to formant wyglądający jak TextBox. Ta kontrola pozwala użytkownikowi wyświetlić / wybrać numer z zakresu. Strzałki w górę i w dół aktualizują wartość pola tekstowego.

Wygląda jak kontrola;

wprowadź opis zdjęcia tutaj

W Form_Load można ustawić zakres.

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

Wynik;

wprowadź opis zdjęcia tutaj

UpDownAlign ustawi położenie strzałek;

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

Wynik;

wprowadź opis zdjęcia tutaj

Metoda UpButton() zwiększa liczbę formantu. (można wywoływać z dowolnego miejsca. Do wywołania tego użyłem button ).

private void button1_Click(object sender, EventArgs e)
        {
            numericUpDown1.UpButton();
        }

**Wynik

wprowadź opis zdjęcia tutaj

Metoda DownButton() zmniejsza liczbę kontrolki. (można wywołać z dowolnego miejsca. Użyłem button aby wywołać go ponownie).

 private void button2_Click(object sender, EventArgs e)
        {
            numericUpDown1.DownButton();
        }

Wynik;

wprowadź opis zdjęcia tutaj

Przydatne wydarzenia


ValueChanged;

To wydarzenie zadziała po kliknięciu strzałki w górę lub w dół.

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.
            }
        }

Wyjście ;

wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow