Använd vänsterpil och högerpil för att navigera

Eller Ctrl+P för att skriva ut till PDF (eller på papper)

Föreläsning 18

Händelser (events)

Event med handler

  1. public MyForm() {
  2. Button button = new Button {
  3. Text = "Click Me"
  4. };
  5. Controls.Add(button);
  6. button.Click += ClickedEventHandler;
  7. }
  8. private void ClickedEventHandler(object sender, EventArgs e) {
  9. MessageBox.Show("You clicked the button");
  10. }

Event med handler och tillstånd

  1. private int clickCount;
  2. public MyForm() {
  3. Button button = new Button {
  4. Text = "Click Me"
  5. };
  6. Controls.Add(button);
  7. button.Click += ClickedEventHandler;
  8. }
  9. private void ClickedEventHandler(object sender, EventArgs e) {
  10. clickCount += 1;
  11. MessageBox.Show("Times clicked: " + clickCount);
  12. }

Flera handlers

  1. public MyForm() {
  2. TableLayoutPanel table = new TableLayoutPanel {
  3. RowCount = 2
  4. };
  5. Controls.Add(table);
  6. Button left = new Button {
  7. Text = "Left"
  8. };
  9. left.Click += LeftClickedEventHandler;
  10. table.Controls.Add(left);
  11. Button right = new Button {
  12. Text = "Right"
  13. };
  14. right.Click += RightClickedEventHandler;
  15. table.Controls.Add(right);
  16. }
  17. private void LeftClickedEventHandler(object sender, EventArgs e) {
  18. MessageBox.Show("You clicked: Left");
  19. }
  20. private void RightClickedEventHandler(object sender, EventArgs e) {
  21. MessageBox.Show("You clicked: Right");
  22. }

En enda handler med sender

  1. public MyForm() {
  2. TableLayoutPanel table = new TableLayoutPanel {
  3. ColumnCount = 2
  4. };
  5. Controls.Add(table);
  6. Button left = new Button {
  7. Text = "Left"
  8. };
  9. left.Click += ClickedEventHandler;
  10. table.Controls.Add(left);
  11. Button right = new Button {
  12. Text = "Right"
  13. };
  14. right.Click += ClickedEventHandler;
  15. table.Controls.Add(right);
  16. }
  17. private void ClickedEventHandler(object sender, EventArgs e) {
  18. Button button = (Button) sender;
  19. MessageBox.Show("You clicked: " + button.Text);
  20. }

Event: TextChanged

  1. private TextBox textBox;
  2. private Label label;
  3. public MyForm() {
  4. TableLayoutPanel table = new TableLayoutPanel {
  5. RowCount = 2
  6. };
  7. Controls.Add(table);
  8. textBox = new TextBox();
  9. table.Controls.Add(textBox);
  10. textBox.TextChanged += TextBoxChangedEventHandler;
  11. label = new Label {
  12. Text = "Length: 0"
  13. };
  14. table.Controls.Add(label);
  15. }
  16. private void TextBoxChangedEventHandler(object sender, EventArgs e) {
  17. label.Text = "Length: " + textBox.Text.Length;
  18. }

Event: SelectedIndexChanged

  1. private ComboBox comboBox;
  2. public MyForm() {
  3. comboBox = new ComboBox {
  4. DropDownStyle = ComboBoxStyle.DropDownList
  5. };
  6. Controls.Add(comboBox);
  7. comboBox.Items.Add("Game of Thrones");
  8. comboBox.Items.Add("Stranger Things");
  9. comboBox.Items.Add("The Walking Dead");
  10. comboBox.SelectedIndexChanged += ChangedEventHandler;
  11. }
  12. private void ChangedEventHandler(object sender, EventArgs e) {
  13. MessageBox.Show(
  14. "You have selected index " +
  15. comboBox.SelectedIndex + ": " +
  16. comboBox.SelectedItem
  17. );
  18. }