2010-07-23 27 views
5

Khi người dùng chọn một nút, điều khiển người dùng tùy chỉnh sẽ được thêm vào biểu mẫu. Điều khiển người dùng này cung cấp khả năng nhập vào một số giá trị.Thêm nội dung nào đó như ShowDialog vào Điều khiển người dùng tùy chỉnh?

Làm cách nào để chờ kiểm soát người dùng hoàn thành trước khi thay đổi giá trị trên biểu mẫu chính của tôi?

Tôi đã nghĩ đến một cái gì đó như thế này:

customControl ylc = new customControl(); 
ylc.Location = new Point(11, 381); 
ylc.Parent = this; 
ylc.BringToFront(); 

if(ylc.ShowDialog() == DialogResult.OK) 
{ 
    this.lblSomeText.Text = ylc.PublicPropertyValue 
} 

UPDATE1

Việc kiểm soát người dùng không thể được thêm vào hình thức riêng của mình. Trên một số hình thức nó được 'nhúng vào' và trên các hình thức khác nó được tạo động khi cần thiết.

UPDATE2

này SO link là hữu ích.

giải pháp cuối cùng tôi trông như thế (tôi giấu usercontrol khi 'hoàn thành'):

customControl ylc = new customControl(); 
ylc.Location = new Point(11, 381); 
ylc.Parent = this; 
ylc.BringToFront(); 
ylc.VisibleChanged += new EventHandler(ylc_VisibleChanged);  
ylc.Show(); 

Sau đó, mã này đi trong 'Visiblechanged' sự kiện:

if(ylc.ShowDialog() == DialogResult.OK) 
{ 
    this.lblSomeText.Text = ylc.PublicPropertyValue 
} 
+0

Mã của bạn không trợ giúp nhưng từ ngữ của bạn đã làm. Đối với tôi, tôi phải làm: CustomControl customControl = new CustomControl(); Biểu mẫu newForm = new Form(); newForm.Controls.Add (customControl); newForm.ShowDialog(); – anon58192932

Trả lời

6

Một điều khiển người dùng không thực sự hoàn thành hiện nó? Tôi nghĩ rằng những gì bạn đang cố gắng làm có thể được phục vụ tốt hơn bằng cách đặt điều khiển người dùng trên biểu mẫu của riêng mình và gọi cho ShowDialog về điều đó.

+1

Có, tùy thuộc vào chính xác những gì bạn đang cố gắng làm với kiểm soát của bạn, bạn nên suy nghĩ về việc đặt nó ở dạng riêng của nó, hoặc thay vì kế thừa 'Control' kế thừa' Form' thay thế. –

+0

Tôi nghĩ về điều đó nhưng điều khiển được sử dụng theo nhiều cách khác nhau trên các hình thức khác nhau. Một hình thức được đề cập chỉ cần sử dụng điều khiển thỉnh thoảng. Khi người dùng đã nhập giá trị bắt buộc, họ có thể 'đóng' usercontrol bằng cách ẩn nó. –

+1

Bạn không thể chỉ gắn vào bất kỳ cơ chế nào mà bạn đang 'đóng' điều khiển người dùng để đặt giá trị của bạn? – msergeant

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