Tôi gặp sự cố với ứng dụng Windows Forms.Có gì sai với lời gọi qua chủ đề của tôi trong Windows Forms?
Biểu mẫu phải được hiển thị từ một chuỗi khác. Vì vậy, trong các lớp mẫu, tôi có đoạn mã sau:
private delegate void DisplayDialogCallback();
public void DisplayDialog()
{
if (this.InvokeRequired)
{
this.Invoke(new DisplayDialogCallback(DisplayDialog));
}
else
{
this.ShowDialog();
}
}
Bây giờ, mỗi khi tôi chạy này, một InvalidOperationException
được ném trên dòng this.ShowDialog();
:
"Cross-chủ đề hoạt động không hợp lệ: Kiểm soát 'SampleForm' được truy cập từ một chuỗi khác với chuỗi được tạo trên đó. "
Có gì sai với đoạn mã này? Nó không phải là một cách hợp lệ để thực hiện cuộc gọi chéo? Có điều gì đặc biệt với ShowDialog()
không?
Ra khỏi tò mò, những gì hiện IsHandleCreated chương trình? –
@Marc Gravell: IsHandleCreated là sai. Vì vậy, một cách tự nhiên, như nhiều người đã nói, mã đang thực hiện trước khi biểu mẫu được hiển thị. –