Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 10 của 10
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Bạn sửa thành thế này nha

    Mã:
      private void btnChia_Click(object sender, EventArgs e)        {             so1 = double.Parse(txtSo1.Text);            so2 = double.Parse(txtSo2.Text);            ketQua = so1 / so2;            if (so2 != 0)                txtKetQua.Text = ketQua.ToString();            else            {            DialogResult traloi =  MessageBox.Show("Lôi!!! Chia cho 0", "Thông báo", MessageBoxButtons.OK,                 MessageBoxIcon.Error);                if (traloi == DialogResult.OK)                {                    this.txtSo2.Clear();                }            }        }
    còn muốn con trỏ nằm trong textbox thì bạn làm thế này txtSo2.Focus();

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi khanhduy.8hpm
    Bạn sửa thành thế này nha

    Mã:
      private void btnChia_Click(object sender, EventArgs e)        {             so1 = double.Parse(txtSo1.Text);            so2 = double.Parse(txtSo2.Text);            ketQua = so1 / so2;            if (so2 != 0)                txtKetQua.Text = ketQua.ToString();            else            {            DialogResult traloi =  MessageBox.Show("Lôi!!! Chia cho 0", "Thông báo", MessageBoxButtons.OK,                 MessageBoxIcon.Error);                if (traloi == DialogResult.OK)                {                    this.txtSo2.Clear();                }            }        }
    còn muốn con trỏ nằm trong textbox thì bạn làm thế này txtSo2.Focus();
    Có khác gì cái ở trên đâu anh.
    Ví dụ như em nhập số thứ nhất là 1, số thứ 2 là 0. Khi click vào button btnChia thì hiệ ra thông báo lỗi. Sau đó nhấn vào OKtrong thông báo lỗi.
    Ý mình muốn hỏi là tại sao khi nhẫn OK trong thông báo lỗi rồi
    mà nó không tự đọng xóa text trong txtSo2

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hidetran
    Để xóa txtSo2 thì thay
    Mã:
      this.txtSo2.Clear();
    Bằng
    Mã:
     txtSo2.Text = "";
    Để đưa con trỏ vào thì dùng
    Mã:
    txtSo2.Focus();
    Em đã sửa như vậy mà sao không dc nhỉ
    Mã:
     if (traloi == DialogResult.OK)
                    {
                        //this.txtSo2.Clear();
                        txtSo2.Text = "";
                        txtSo2.Focus();
                    }
    Ví dụ như em nhập số thứ nhất là 1, số thứ 2 là 0. Khi click vào button btnChia thì hiệ ra thông báo lỗi. Sau đó nhấn vào OK trong thông báo lỗi.
    Ý em muốn hỏi là tại sao khi nhẫn OK trong thông báo lỗi rồi
    mà nó không tự đọng xóa text trong txtSo2

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    MessageBox chỉ có 1 button OK thì khỏi cần DialogResult làm gì, mà phải ktra text box trước khi convert nữa chứ nhỉ [IMG]images/smilies/smile.png[/IMG]

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cách 1:
    Bạn sửa code thành thế này cho mình:

    private void btnChia_Click(object sender, EventArgs e)
    {
    DialogResult traloi = new DialogResult();
    so1 = double.Parse(txtSo1.Text);
    so2 = double.Parse(txtSo2.Text);
    ketQua = so1 / so2;
    if (so2 != 0)
    txtKetQua.Text = ketQua.ToString();
    else
    {
    DialogResult traloi = MessageBox.Show("Lôi!!! Chia cho 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
    this.txtSo2.Clear();
    this.txtSo2.focus();
    }
    }

    Lý Do: đã dùng MessageBox.Show() và chọn loại MessageBoxButton.OK thì không cần check result trả về như phần bạn làm. vì result trả về không phải là ok hay cancel nữa. => nó không chạy vào trong cái if : if (traloi == DialogResult.OK) của bạn nữa. => không chạy @@!.

    Cách 2:
    bạn chuyển loại : MessageBoxButton.OK thành MessageBoxButton.OkCancel và thêm : this.txtSo2.focus(); vào để đặt con trỏ vào txtSo2 vậy là đc rồi

    Thân!

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    mình thấy các cách bạn đưa ra cũng hay đấy.
    dieu kien vay tin chap prudential-truyen trinh tham-Van hoc co dien

  8. #8
    Mã:
      private void btnChia_Click(object sender, EventArgs e)        {            if (txtSo1.Text=="" || txtSo2.Text=="")            {                 MessageBox.Show("Hay nhap du ca tu va mau so","Thong bao");            }            else            {                 so1 = double.Parse(txtSo1.Text);                 so2 = double.Parse(txtSo2.Text);                 if (so2 != 0)                 {                     double ketQua = so1 / so2;                     txtKetQua.Text = ketQua.ToString();                 else                {                      MessageBox.Show("Lôi!!! Chia cho 0", "Thông báo", MessageBoxButtons.OK,             MessageBoxIcon.Error);                      txtSo2.Text="";                       txtSo2.Focus();                 }              }        }
    hoặc là khi nhập thiếu 1 trong 2 ô text thì btnChia.Enable=false [IMG]images/smilies/clap_grin.gif[/IMG]

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Di chuyển con trỏ vào 1 textbox C# như thế nào?

    Em đang từng bước học lập trình WinForm và đang làm 1 bài "cộng trừ nhân chia 2 số" em có thắc mắc muốn hỏi là:
    Khi nhắp button btnChia, nếu txtSo2 là 0 thì xuất hiện hộp thông báo lỗi rồi xóa trống
    txtSo2 và di chuyển con trỏ đến TextBox này.
    Sự kiện Click vào btnChia của em là:
    Mã:
      private void btnChia_Click(object sender, EventArgs e)
            {
                DialogResult traloi = new DialogResult();
                so1 = double.Parse(txtSo1.Text);
                so2 = double.Parse(txtSo2.Text);
                ketQua = so1 / so2;
                if (so2 != 0)
                    txtKetQua.Text = ketQua.ToString();
                else
                {
                    MessageBox.Show("Lôi!!! Chia cho 0", "Thông báo", MessageBoxButtons.OK,                 MessageBoxIcon.Error);
                    if (traloi == DialogResult.OK)
                    {
                        this.txtSo2.Clear();
                    }
                }
            }
    Em không hiểu sau khi thông báo lỗi nhấn Ok rồi mà trong txtSo2 không tự xóa.
    Với lại cho em hỏi là muốn đưa con trỏ vào txtSo2 thì phải làm thế nào??
    Em xin cảm ơn.

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    [IMG]images/smilies/waiting.gif[/IMG] Bắt lỗi trước cho nhàn. Ví dụ:

    Mã:
    //-------method này t viết demo, bạn tự thay vào cho đúng nhé---private bool CheckValue(){ string strError=""; if("chưa nhập tử số")   strError=" Bạn chưa nhập tử số
    "; if("chưa nhập mẫu số") strError+="Bạn chưa nhập mấu số"; if("mấu số =0") {  strError+="Mẫu số phải khác 0. Vui lòng nhập lại";  //del  //focus } if(strError!="") {   MessageBox.Show("lỗi:"+strError); return false;  } return true;}//ở sự kiện click nut chia:  private void btnChia_Click(object sender, EventArgs e)        {           if(CheckValue()==false)            return;//finish method            //----------Tính toán bình thường, ko lo lỗi nữa.               so1 = double.Parse(txtSo1.Text);                so2 = double.Parse(txtSo2.Text);               txtKetQua.Text =(so1 / so2).ToString();     }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •