winforms
Podstawowe elementy sterujące
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ść.
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:
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:
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:
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
:
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:
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?” .
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 ;
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;
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ść ;
Podanie zewnętrznego źródła danych SQL do ValueMember
listy wymaga ValueMember
i DisplayMember
Jeśli NIE , będzie to wyglądać tak,
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.
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)
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 ;
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;
W Form_Load
można ustawić zakres.
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.Maximum = 10;
numericUpDown1.Minimum = -10;
}
Wynik;
UpDownAlign ustawi położenie strzałek;
private void Form3_Load(object sender, EventArgs e)
{
numericUpDown1.UpDownAlign = LeftRightAlignment.Left;
}
Wynik;
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
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;
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 ;