Tại khởi của một hình thức (hình thức chính), nó gọi một hình thức khác để có được một loạt các khởi đầu vào, và sau đó chuyển rất nhiều thông tin:Chờ để nhận được thông tin từ một hình thức sổ popup
Form3 getup = new Form3();
getup.Show();
example = getup.example;
Tuy nhiên , Tôi cần phải chờ thông tin biểu mẫu mới này hoàn tất.
Form3 getup = new Form3();
getup.Show();
waitfordone();
example = getup.example;
ATM, tôi đã cố gắng sử dụng khi tuyên bố:
Form3 getup = new Form3();
getup.Show();
While(getup.visible=true)Console.WriteLine("waiting");
example = getup.example;
Nhưng điều này gây ra một hang ... mà là để nói, nó chạy, sau đó đóng băng. Tôi nghi ngờ điều này là do vòng lặp while đang ăn tất cả quá trình xử lý. Vì vậy, tôi đã thử tạo một chủ đề mới
Form3 getup = new Form3();
Thread t = new Thread(getup.Show());
t.start();
While(getup.visible=false)Console.WriteLine("waiting"); // takes a little bit to open
While(getup.visible=true)Console.WriteLine("waiting"); //waits for close
example = getup.example;
Nhưng điều này cũng khiến nó bị treo. Có lẽ vì lý do tương tự. Tôi đã nhìn vào autoresetevents.
Và tôi đã cố gắng:
AutoResetEvent invisible = new AutoResetEvent(false);
Form3 getup = new Form3();
void setup_invisible(object sender, EventArgs e)
{
if (getup.Visible == false) invisible.Set();
}
public ... {
getup.VisibilityChanged += new EventHandle(setup_Invisible);
getup.show();
invisible.WaitOne();
... }
// and many other variations on this
nhưng than ôi, nó sẽ mở ra Form3, đóng nó (vì các chủ đề được thực hiện?), Và sau đó treo ở invisible.WaitOne();
Có thể ai đó xin vui lòng giải thích làm thế nào để làm điều này , đọc chỉ khiến tôi bối rối hơn.
Bản sao của: http://stackoverflow.com/questions/3222834/block-until-a-form-closes-winforms –