Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: Làm sao biết được Textbox nào đang được Focus ?

  1. #1
    Ngày gia nhập
    09 2010
    Bài viết
    12

    Mặc định Làm sao biết được Textbox nào đang được Focus ?

    Các bạn cho mình hỏi mình đang làm 1 cái form trên đó có các button là các ký tự alphabe(giống bàn phím) và 2 textbox, mình muốn khi nhấn các nút phím thì hiển thị vào textbox đang có focus. Mình nghĩ chỉ cần xác định được hiện tại textbox nào đang có focus sau đó dùng sendkey là được, nhưng tìm hoài không biết cách nào lấy focus hiện hành đang ở textbox nào? bạn nào biết xin chỉ giúp cách. Xin cảm ơn.

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    Trong Window form thấy phải tìm, xem http://www.dotnetperls.com/focused-textbox
    Trong WPF có sẵn đối tượng FocusedElement, xem http://msdn.microsoft.com/en-us/libr...edelement.aspx

  3. #3
    Ngày gia nhập
    09 2010
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi LieuLuc Xem bài viết
    Trong Window form thấy phải tìm, xem http://www.dotnetperls.com/focused-textbox
    Trong WPF có sẵn đối tượng FocusedElement, xem http://msdn.microsoft.com/en-us/libr...edelement.aspx
    Cảm ơn bạn đã quan tâm trả lời câu hỏi của mình, nhưng đã xem qua link bạn gởi hình như chưa đúng với ý của mình, vì khi nhấn vào button thì focus đã chuyển cho button rồi vậy làm sao biết được trước khi chuyển focus tới button thì focus đang ở trên textbox nào?
    Có cách nào để giữ nguyên focus trên textbox khi ta nhấn vào button không?

  4. #4
    Ngày gia nhập
    05 2010
    Bài viết
    351

    Trích dẫn Nguyên bản được gửi bởi microchip Xem bài viết
    Cảm ơn bạn đã quan tâm trả lời câu hỏi của mình, nhưng đã xem qua link bạn gởi hình như chưa đúng với ý của mình, vì khi nhấn vào button thì focus đã chuyển cho button rồi vậy làm sao biết được trước khi chuyển focus tới button thì focus đang ở trên textbox nào?
    Có cách nào để giữ nguyên focus trên textbox khi ta nhấn vào button không?
    Bạn nhấn vào button xong sau đó. bạn set focus của textbox = true là được

  5. #5
    Ngày gia nhập
    09 2010
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi tuandoi1 Xem bài viết
    Bạn nhấn vào button xong sau đó. bạn set focus của textbox = true là được
    Bạn ơi biết textbox nào mà set focus đây( có nhiều textbox) , ta phải xác định được trước khi click vào button thì focus đang ở textbox nào? biết được cái này thì ta set focus lại cho text box đó là xong.

  6. #6
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    Mặc định Làm sao biết được Textbox nào đang được Focus ?

    Nếu chỉ có 2 textBox thì bạn có thể bắt sự kiện GotFocusLostFocus của 2 TextBox đó để ghi nhận vào một biến là được.

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    113

    Bắt event Validated của textbox.
    Code:
    private string textbox;
            // các text có trên form đều sử dụng chung event này
            private void textBox_Validated(object sender, EventArgs e)
            {
                TextBox txtt = (TextBox)sender;
                textbox = txtt.Name;
                
            }
            // các button cũng vậy
            private void button_Click(object sender, EventArgs e)
            {
                Button btn = (Button)sender;
                string text = btn.Text;
                foreach (Control ctr in this.Controls)
                {
                    if (ctr is TextBox)
                    {
                        if (ctr.Name == textbox)
                            ctr.Text = ctr.Text + text;
                    }
                }
            }
    Đã được chỉnh sửa lần cuối bởi qanlh_soft : 21-10-2011 lúc 03:47 PM.
    Còn đây điếu thuốc cháy dở dang .
    Châm lên ta đốt mảnh đời tàn .
    Làn khói ngẩn ngơ theo dòng nhạc .
    Thuốc tàn mà... code ... mãi chưa xong .
    http://thanlong.govtc.com

  8. #8
    Ngày gia nhập
    09 2010
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi LieuLuc Xem bài viết
    Nếu chỉ có 2 textBox thì bạn có thể bắt sự kiện GotFocusLostFocus của 2 TextBox đó để ghi nhận vào một biến là được.
    Cuối cùng thì cũng làm được rồi, theo các của nói. Bây giờ còn thêm vấn đề nữa là số lượng button rất nhiều (mỗi button là 1 ký tự trên bàn phím) vậy phải code thế nào cho nó ngắn chứ ngồi nghĩ phải xử lý cho 102 nút thấy ngán quá bạn ơi??!!!!!

  9. #9
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    Trích dẫn Nguyên bản được gửi bởi microchip Xem bài viết
    Cuối cùng thì cũng làm được rồi, theo các của nói. Bây giờ còn thêm vấn đề nữa là số lượng button rất nhiều (mỗi button là 1 ký tự trên bàn phím) vậy phải code thế nào cho nó ngắn chứ ngồi nghĩ phải xử lý cho 102 nút thấy ngán quá bạn ơi??!!!!!
    Khai báo biến string focusedTxtName, khi một textbox được focus thì gán focusedTxtName = textbox.Name, khi nhấn một button thì duyệt các controls của form, kiểm tra tên của controls nên trùng với focusedTxtName thì làm việc với nó.
    p/s: Còn nhiều cách nữa, chẳng hạn dùng mảng, chỉ số, ...

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

  1. Xử lý focus của TextBox trong lập trình C#?
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 19
    Bài viết cuối: 14-01-2012, 04:53 PM
  2. Thêm dữ liệu vào textbox không cần focus(textbox không có title )
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 06-10-2011, 12:17 AM
  3. thiết lập focus() cho textbox khi click vào 1 cell
    Gửi bởi k56flex trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 11-05-2011, 04:28 PM
  4. Bôi đen nội dung textbox khi nhận focus
    Gửi bởi MYNAM trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 18-10-2010, 02:05 PM
  5. Focus vào cuối chuỗi trong Textbox
    Gửi bởi w4iv4t trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 29-04-2010, 10:27 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