2009-02-19 43 views
5

Tôi muốn thêm điều khiển vào điều khiển người dùng trong trình xử lý sự kiện (như sự kiện nhấp nút).Thêm điều khiển vào Điều khiển người dùng động

Tôi đang cố gắng để thêm một điều khiển tra cứu datagridview động, nhưng tôi không thể nhận được rằng để làm việc, vì vậy tôi cố gắng chỉ cần thêm một nút với mã này:

private void btnCreateNewButton_Click(object sender, EventArgs e) 
{ 
    Button btn = new Button(); 
    btn.Location = new Point(100, 640); 
    btn.Size = new Size(100, 30); 
    btn.Text = "Click Me"; 
    btn.Click += (s, ea) => MessageBox.Show("New button clicked"); 
    this.Controls.Add(btn); 
} 

Khi tôi nhấp của tôi Tạo mới Nút, không có nút nào xuất hiện.

Nếu tôi thêm chính xác cùng một mã vào biểu mẫu thay vì một điều khiển người dùng, nút được tạo và hiển thị như dự định, nhưng trong điều khiển người dùng không có gì xảy ra. Trong điều khiển người dùng, tôi cũng đã thử

this.Parent.Controls.Add(btn) and 
this.ParentForm.Controls.Add(btn) 

nhưng vô ích.

Bất kỳ ai có ý tưởng nào?

Cảm ơn, Ciaran.

+0

Phiên bản đầu tiên (this.Controls.Add) chỉ hoạt động tốt ... Nếu UserControl cao hơn 640 –

Trả lời

1

Bạn đặt nút của bạn trên 100,640 điểm. Hãy đảm bảo rằng điều khiển người dùng của bạn có thể chứa nút động của bạn. Nếu không, bạn sẽ không nhìn thấy nó. Tôi đã sử dụng mã của bạn và nó hoạt động tốt cho tôi, chỉ cần đảm bảo kích thước phù hợp của cả biểu mẫu gốc và kiểm soát người dùng.

+1

Cảm ơn vì điều đó, nó đang hiển thị dưới sự kiểm soát vì một lý do nào đó. Tôi cần gọi cho BringToFront() –

1

Rất có thể chỉ là nút của bạn đang được đặt ngoài giới hạn của kiểm soát gốc và/hoặc sau một điều khiển khác. Tôi không tin rằng UserControls hoặc các hình thức đặc biệt liên quan đến việc thêm điều khiển tại thời gian chạy, nhưng một sự khác biệt đơn giản có thể là các biểu mẫu theo mặc định có thể tái định cỡ lớn trong khi UserControls không? Dù bằng cách nào thì tôi cũng không nghĩ rằng một trong hai loại điều khiển sẽ tự động thay đổi kích thước để phù hợp với tất cả các điều khiển con của họ, vì vậy nó khá dễ dàng để đặt một điều khiển mới/động ở vị trí sai và có nó không được hiển thị.

Các vấn đề liên quan