Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Làm sao để duyệt toàn bộ các textbox xem textbox đã nhập đủ chưa.(Nếu đủ thì hiện button)

  1. #1
    Ngày gia nhập
    01 2012
    Bài viết
    42

    Mặc định Làm sao để duyệt toàn bộ các textbox xem textbox đã nhập đủ chưa.(Nếu đủ thì hiện button)

    Ví dụ làm 1 chương trình giải ptb2 . đầu tiên cho button "giải" enable=false, làm sao để khi nhập vào đầy đủ 3 hệ số a,b,c thì button giải đc enable = true. MOng mọi người giúp đỡ mình đang còn gà

  2. #2
    Ngày gia nhập
    04 2009
    Nơi ở
    /Users/richtran
    Bài viết
    103

    Cái này có nhiều cách, cách đơn giản là bạn bắt sự kiện text_changed (của textbox). Tại mỗi textbox bạn sẽ xét xem là các textbox đã nhập hết chưa?
    - Nếu chưa, thì kêu nhập
    - Nếu rồi thì set thuộc tính của button gpt là enable=true
    Vạn vật chuyển động không ngừng

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    _http://msdn.microsoft.com/en-us/library/scekt9xw%28v=vs.71%29.aspx
    Bạn vào đây tìm hiểu toán tử is.
    bài bạn thì duyệt toàn bộ Control trong form, kiểm tra xem cái nào Textbox rồi kiểm tra tiếp xem có văn bản không.
    Chắc bạn biết mảng Control của form?

  4. #4
    Ngày gia nhập
    01 2012
    Bài viết
    42

    Trích dẫn Nguyên bản được gửi bởi richtran Xem bài viết
    Cái này có nhiều cách, cách đơn giản là bạn bắt sự kiện text_changed (của textbox). Tại mỗi textbox bạn sẽ xét xem là các textbox đã nhập hết chưa?
    - Nếu chưa, thì kêu nhập
    - Nếu rồi thì set thuộc tính của button gpt là enable=true
    như của bạn thì như thế này
    Visual C# Code:
    1. private void txt_a_TextChanged(object sender, EventArgs e)
    2.         {
    3.             if (txt_a.Text.Trim().Length == 0 || txt_b.Text.Trim().Length == 0 || txt_c.Text.Trim().Length == 0)
    4.             {
    5.                 btn_giai.Enabled = false;
    6.             }
    7.             else
    8.                 btn_giai.Enabled = true;
    9.         }
    10.  
    11.         private void txt_b_TextChanged(object sender, EventArgs e)
    12.         {
    13.             if (txt_a.Text.Trim().Length == 0 || txt_b.Text.Trim().Length == 0 || txt_c.Text.Trim().Length == 0)
    14.             {
    15.                 btn_giai.Enabled = false;
    16.             }
    17.             else
    18.                 btn_giai.Enabled = true;
    19.         }
    20.  
    21.         private void txt_c_TextChanged(object sender, EventArgs e)
    22.         {
    23.             if (txt_a.Text.Trim().Length == 0 || txt_b.Text.Trim().Length == 0 || txt_c.Text.Trim().Length == 0)
    24.             {
    25.                 btn_giai.Enabled = false;
    26.             }
    27.             else
    28.                 btn_giai.Enabled = true;
    29.         }
    Nhưng nếu form có nhiều textbox thì mỗi textbox lại phải viết sự kiện textchange cho nó hay sao?

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    _http://msdn.microsoft.com/en-us/library/scekt9xw%28v=vs.71%29.aspx
    Bạn vào đây tìm hiểu toán tử is.
    bài bạn thì duyệt toàn bộ Control trong form, kiểm tra xem cái nào Textbox rồi kiểm tra tiếp xem có văn bản không.
    Chắc bạn biết mảng Control của form?
    có phải dùng vòng lặp foreach() ko @trungkien45 . như vậy thì viết code chỗ nào ....:-?

  5. #5
    Ngày gia nhập
    07 2011
    Nơi ở
    Modova
    Bài viết
    123

    Trích dẫn Nguyên bản được gửi bởi chickcoder Xem bài viết
    có phải dùng vòng lặp foreach() ko @trungkien45 . như vậy thì viết code chỗ nào ....:-?
    Theo mình thì đúng là dùng foreach(), lúc này bạn có thể làm một Button check tính hợp lệ của các TextBoxes, nếu hợp lệ thì cho Visible của Button kia lên; hoặc nếu cùng lắm thì bạn thêm nó vào Timer (như thế này sẽ rất tốn tài nguyên) với Interval nhỏ, khi hợp lệ thì cho Enabled của nó thành False (nhằm không cho cái Timer nó chạy nữa). Nói chung là mình nghĩ bạn làm theo cách đầu tiên mình nói (hoặc tương tự) thì sẽ tốt hơn.
    A good beginning and a good ending !

  6. #6
    Ngày gia nhập
    07 2010
    Bài viết
    99

    Mặc định Làm sao để duyệt toàn bộ các textbox xem textbox đã nhập đủ chưa.(Nếu đủ thì hiện button)

    mình nghĩ nên check điều kiện khi sự kiện TextChanged của mỗi textbox xảy ra. mình cài đặt như sau :

    Visual C# Code:
    1. private void Form1_Load(object sender, EventArgs e)
    2. {
    3.     foreach(Control c in this.Controls)
    4.         if (c is TextBox)
    5.             c.TextChanged += new EventHandler(Textbox_TextChanged);
    6. }
    7.  
    8. void Textbox_TextChanged(object sender, EventArgs e)
    9. {
    10.     bool allAreFilled = true;
    11.     foreach(Control c in this.Controls)
    12.         if (c is TextBox && c.Text.Trim() == string.Empty)
    13.         {
    14.             allAreFilled = false;
    15.             break;
    16.         }
    17.     cmdTinh.Enabled = allAreFilled;
    18. }
    Never try, never know

  7. #7
    Ngày gia nhập
    07 2011
    Nơi ở
    Modova
    Bài viết
    123

    Trích dẫn Nguyên bản được gửi bởi nhquynam Xem bài viết
    mình nghĩ nên check điều kiện khi sự kiện TextChanged của mỗi textbox xảy ra. mình cài đặt như sau :

    Visual C# Code:
    1. private void Form1_Load(object sender, EventArgs e)
    2. {
    3.     foreach(Control c in this.Controls)
    4.         if (c is TextBox)
    5.             c.TextChanged += new EventHandler(Textbox_TextChanged);
    6. }
    7.  
    8. void Textbox_TextChanged(object sender, EventArgs e)
    9. {
    10.     bool allAreFilled = true;
    11.     foreach(Control c in this.Controls)
    12.         if (c is TextBox && c.Text.Trim() == string.Empty)
    13.         {
    14.             allAreFilled = false;
    15.             break;
    16.         }
    17.     cmdTinh.Enabled = allAreFilled;
    18. }
    Xin lỗi bạn, mình nhầm, tuy chưa thử nhưng mình nghĩ lời giải của bạn đúng và rất hay.
    Đã được chỉnh sửa lần cuối bởi Moscow : 19-04-2012 lúc 09:06 PM. Lý do: Nhầm
    A good beginning and a good ending !

  8. #8
    Ngày gia nhập
    04 2012
    Bài viết
    53

    Mặc định kiểm tra kiểu gì,, kiểm tra dữ liệu thay đổi hay không hay là kiểm tra những ô đó đã nhập hay chưa

    nếu kiểm tra dữ liệu thay đổi thì làm như trên
    còn kiểm tra ô đó nhập dữ liệu hay chưa thì có một cách đơn giản hơn..
    tuy không đẹp mắt viết mã hơi nhiều..
    viduj ta có 3 ô textbox sinhvien.diachi,lop .. chẳng hạn

    theo thứ tự nhấn tab từ trên xuống thì sinhvien-diachi-lop

    khi ta kiểm tra nó tự động kiểm tra như thế.. sau đây là mã

    if(sinhvien=="")
    {
    messengerBox.show("bạn nhập thiếu mã sinh viên","thông báo");
    return;
    }
    if(diachi=="")
    {
    messengerBox.show("bạn nhập thiếu địa chỉ","thông báo");
    return;
    }
    if(lop=="")
    {
    messengerBox.show("bạn nhập thiếu lớp","thông báo");
    return;
    }

    // thế là xong. bắt đầy đoạn viết mã xữ lý của mình

  9. #9
    Ngày gia nhập
    04 2012
    Bài viết
    53

    Trích dẫn Nguyên bản được gửi bởi hoanghuyhung Xem bài viết
    nếu kiểm tra dữ liệu thay đổi thì làm như trên
    còn kiểm tra ô đó nhập dữ liệu hay chưa thì có một cách đơn giản hơn..
    tuy không đẹp mắt viết mã hơi nhiều..
    viduj ta có 3 ô textbox sinhvien.diachi,lop .. chẳng hạn

    theo thứ tự nhấn tab từ trên xuống thì sinhvien-diachi-lop

    khi ta kiểm tra nó tự động kiểm tra như thế.. sau đây là mã

    if(sinhvien=="")
    {
    messengerBox.show("bạn nhập thiếu mã sinh viên","thông báo");
    return;
    }
    if(diachi=="")
    {
    messengerBox.show("bạn nhập thiếu địa chỉ","thông báo");
    return;
    }
    if(lop=="")
    {
    messengerBox.show("bạn nhập thiếu lớp","thông báo");
    return;
    }

    // thế là xong. bắt đầy đoạn viết mã xữ lý của mình



    nhầm chưa độc hết chủ đề.. hehehe .. viết xong quay hên độc mới rõ,,,

    ADMIN ĐỪNG KHÓA EM NƯA NGHE,, TUẦN NÀY KHÓA EM 3 LẦN RỒI,, :P. khóa xong chả hiểu lý do vì sao mình bị khóa..
    Đã được chỉnh sửa lần cuối bởi hoanghuyhung : 20-04-2012 lúc 09:09 AM.

  10. #10
    Ngày gia nhập
    01 2012
    Bài viết
    42

    Trích dẫn Nguyên bản được gửi bởi nhquynam Xem bài viết
    mình nghĩ nên check điều kiện khi sự kiện TextChanged của mỗi textbox xảy ra. mình cài đặt như sau :

    Visual C# Code:
    1. private void Form1_Load(object sender, EventArgs e)
    2. {
    3.     foreach(Control c in this.Controls)
    4.         if (c is TextBox)
    5.             c.TextChanged += new EventHandler(Textbox_TextChanged);
    6. }
    7.  
    8. void Textbox_TextChanged(object sender, EventArgs e)
    9. {
    10.     bool allAreFilled = true;
    11.     foreach(Control c in this.Controls)
    12.         if (c is TextBox && c.Text.Trim() == string.Empty)
    13.         {
    14.             allAreFilled = false;
    15.             break;
    16.         }
    17.     cmdTinh.Enabled = allAreFilled;
    18. }
    cái này không đc bạn à. :(

Các đề tài tương tự

  1. Trả lời: 14
    Bài viết cuối: 10-10-2011, 03:58 PM
  2. Duyệt tất cả các textbox bằng foreach
    Gửi bởi chitviv trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 27-09-2011, 09:57 PM
  3. nhập dữ liệu vào textbox enter con trỏ xuống textbox kế tiếp?
    Gửi bởi hoanghuynh2409 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 25-12-2010, 09:57 PM
  4. Duyệt qua từng textbox trong lập trình C#?
    Gửi bởi birainkid60 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 19-10-2010, 04:32 PM
  5. Làm sao ẩn 1 button dựa vào string nhập trong textbox
    Gửi bởi ntn_vn1701 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 03-03-2009, 11:02 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn