private void button1_Click(object sender, EventArgs e) { double number1, number2; if (double.TryParse(txtNumber1.Text, out number1) == false) { MessageBox.Show("輸入的開始數值有誤"); txtNumber1.Focus(); txtNumber1.SelectAll(); return; } if (double.TryParse(txtNumber2.Text, out number2) == false) { MessageBox.Show("輸入的結束數值有誤"); txtNumber2.Focus(); txtNumber2.SelectAll(); return; } if (number2 < number1) { MessageBox.Show("第一個數值不能大於第二個數值,請重新輸入"); txtNumber1.Focus(); txtNumber1.SelectAll(); return; } double sum = 0; for (double i = number1; i <= number2; i++) { sum = sum + i; i++; } lbResult.Text = sum.ToString(); } private void txtNumber1_TextChanged(object sender, EventArgs e) { lbResult.Text = ""; } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } //sender中存的就是對應控件觸發事件的對應控件對象。object是一個所有子類都可以訪問的父類。每個控件都對應了一個類 private void txtNumber1_KeyPress(object sender, KeyPressEventArgs e) //keypress事件 { TextBox txtNumber1 = sender as TextBox; //父類轉子類 有了這一句才能實現對該窗體所有textbox都使用阻止輸入0的功能 if (e.KeyChar < '0' || e.KeyChar > '9')//條件的作用是阻止用戶輸入ascii表中對應的碼 只管說就是只能輸入數字 { e.Handled = true; } //textbox屬性中的selectionstart 如果是選中一段文本,則為起始位置,如果沒有選中,則指示光標位置。 //注意!第一個位置為0 if (txtNumber1.SelectionStart == 0 && e.KeyChar == '0')//如果用戶光標在第一個位置最前面並且輸入0,就阻止用戶輸入 { e.Handled = true; } if (e.KeyChar == 8) //判斷用戶輸入的是退格鍵 { e.Handled = false; //取消e.handled阻止用戶輸入的功能 } }