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

Đề tài: Add nhiều controls vào panel bằng code như thế nào?

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

    Mặc định Add nhiều controls vào panel bằng code như thế nào?

    Trên form mình có 1 panel tạm gọi là panel1, mình muốn add một số control (thực ra là user control) vào panel này theo kiểu lần lượt, số lượng controls add vào tùy theo vòng lặp được truy vấn từ database. Vấn đề mình gặp phải là chỉ add đc 1 control đầu. Mình có dùng thử ví dụ sau thì trên panel chỉ có 1 textbox đầu là textbox0 (không thấy các textbox1,....4) :(

    Visual C# Code:
    1.             for (int i = 0; i < 5; i++)
    2.             {
    3.                 TextBox tb = new TextBox();
    4.                 tb.Name = i.ToString();
    5.                 tb.Text = "textbox" + i.ToString();
    6.                 panel1.Controls.Add(tb);
    7.             }

    trong khi mình nghĩ code trên thi phải có 5 textbox đc add vào panel chứ nhỉ ?

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Nhưng nó nằm cùng 1 vị trí nên bạn chỉ nhìn thấy có 1 mà thôi...
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

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

    thanks admin, vậy làm sao để nó xuất hiện liền nhau từ trên xuống, vì thực ra user control của mình có width = width của panel nên cần phải mỗi control là 1 hàng kế tiếp vào nhau, kiểu như từng row trong gridview vậy

  4. #4
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    bạn ko set tọa độ cho từng textbox thì cả 5 cái mặc định là (0,0) thôi
    thấy 1 là phải

  5. #5
    Ngày gia nhập
    11 2008
    Nơi ở
    An Giang
    Bài viết
    502

    Trích dẫn Nguyên bản được gửi bởi luxubu Xem bài viết
    thanks admin, vậy làm sao để nó xuất hiện liền nhau từ trên xuống, vì thực ra user control của mình có width = width của panel nên cần phải mỗi control là 1 hàng kế tiếp vào nhau, kiểu như từng row trong gridview vậy
    Bạn set thuộc tính Y của từng Control đc Add vào Panel thui. Ví dụ Control đầu tiền có tọa độ X =10 , Y = 10. Thì control tiếp theo cũng có X = 10 nhưng Y = chiều cao của control trước đó + thêm khoảng cách (Nếu bạn muốn liền sát nhau thì cộng thêm 1 đơn vị). Bạn test thữ xem

  6. #6
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Mặc định Add nhiều controls vào panel bằng code như thế nào?

    Mình vừa làm cái vụ nè mấy hôm. Admin nói đúng đó. Mấy bác kia cũng nói cách giải rồi. Bạn tìm hiểu mấy thuộc tính của control là dc. Code thế này thui:
    Visual C# Code:
    1.             Point newP = new Point();
    2.             foreach (Control ct in pnContent.Controls)
    3.             {
    4.                 newP = ct.Location;
    5.                 newP.Y += ct.Size.Height;
    6.             }
    7.             UCTest test= new UCTest();
    8.             test.Location = newP;
    9.             pnContent.Controls.Add(test);
    Cái đó t add các control liên tiếp theo cột dọc. bạn muốn chạy hết một hàng rồi mới xuống hàng khác thì kết hợp với width của panel nhé.
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  7. #7
    Ngày gia nhập
    08 2011
    Bài viết
    1

    UCTest test = new UCTest();

    bạn ơi UcTest là cái gì hả bạn, có thể chỉ rõ hơn giúp được không

  8. #8
    Ngày gia nhập
    03 2011
    Bài viết
    464

    Trích dẫn Nguyên bản được gửi bởi supperthin02 Xem bài viết
    UCTest test = new UCTest();

    bạn ơi UcTest là cái gì hả bạn, có thể chỉ rõ hơn giúp được không
    cái đó là UserControl. Thay vì add control được cung cấp bởi MS. thì trong ví dụ đó add Usercontrol vào Panel. Bạn không cần để ý nó làm gì cả.

    UCTest test = new UCTest(); tương đương với Textbox text=new TextBox của bạn!!!
    bongda24h.tv

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

    cho nó vào một cái listview là ok
    sau đó cho vòng for chạy
    vừa đều vừa đẹp, cần gì nhiều

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

  1. Fincontrol các control trong Panel khi tạo panel bằng code behind
    Gửi bởi quangbinhit trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 1
    Bài viết cuối: 13-12-2012, 09:11 PM
  2. Xin giúp đỡ về cách add controls vào panel
    Gửi bởi xilanhthanki trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 06-11-2012, 11:33 PM
  3. Graphic Làm sao chương trình khi chạy các controls add vào panel không bị nhấp nháy?
    Gửi bởi killdog9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 18-09-2012, 10:08 PM
  4. Thêm nhiều label vào panel bẳng code và cách gán sự kiện Click cho các label đó ?
    Gửi bởi yunaken trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 01-04-2012, 07:46 PM
  5. thao tác trên một form có quá nhiều panel. Giúp
    Gửi bởi lit.aptech trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 02-03-2010, 07:39 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