2010-11-22 21 views

Trả lời

11

Mặc định MessageBox mà bạn đang sử dụng thông qua System.Windows.Forms không gian tên sẽ luôn là Phương thức (tức là, Chặn). Nếu bạn muốn có một hộp thông báo Modeless, bạn nên tạo WindowsForm của riêng bạn trông giống như một MessageBox.

Sau đó bạn sẽ hiển thị Form này như sau:

// C# 
//Display frmAbout as a modeless dialog 
Form f= new Form(); 
f.Show(); 
+0

tôi có thể vượt qua để .Show một chuỗi vì vậy tôi có thể sử dụng một cách nhanh chóng "tìm và thay thế "(tôi có rất nhiều hộp thư)? – Alex

+0

Trong lớp Form của bạn, thêm một thành viên chuỗi và thiết lập nó thông qua hàm tạo. Và trên FormLoad của bạn, hiển thị chuỗi này trên biểu mẫu dưới dạng văn bản tĩnh. – Aamir

18
private void ShowMessageBox(string text, string caption) 
{ 
    Thread t = new Thread(() => MyMessageBox(text, caption)); 
    t.Start(); 
} 

private void MyMessageBox(object text, object caption) 
{ 
    MessageBox.Show((string)text, (string)caption); 
} 

Bạn có thể gọi ShowMessageBox() với văn bản và chú thích của bạn. Đây chỉ là một mẫu đơn giản, bạn có thể thêm các nút hoặc chủ sở hữu biểu tượng hoặc các đối số khác mà bạn muốn.

8

Có lẽ đơn giản nhất là:

Thread t = new Thread(() => MessageBox.Show(text)); 
t.Start(); 
3

Bạn có thể đơn giản hóa các câu trả lời khác xuống một dòng mã

new Thread(() => System.Windows.Forms.MessageBox.Show(text)).Start(); 
Các vấn đề liên quan