[英]Wait for Input in User Control
我正在嘗試在WinForms中實現自定義的退出提示。 (我不應該使用DialogBox)
我在主窗體中放置了一個用戶控制對象,該對象默認情況下是不可見和禁用的。 單擊我放置在表單上的某個按鈕會顯示並啟用該對象,並禁用我的表單中除用戶控件之外的所有內容。
private void btn_close_Click(object sender, EventArgs e) {
prompt1.Visible = true;
prompt1.Enabled = true;
disableControls();
//Wait for a button to be pressed in prompt1
//Make an action based on a button pressed.
//closeApp returns a boolean
if (!prompt1.closeApp)
{
prompt1.Visible = false;
prompt1.Enabled = false;
enableControls();
}
else
{
Application.Exit();
}
}
這是我在提示對象上的代碼:
public partial class Prompt : UserControl
{
bool exit;
public bool closeApp
{
get{return exit;}
}
public Prompt()
{
InitializeComponent();
}
private void btn_yes_Click(object sender, EventArgs e)
{
exit = true;
}
private void btn_no_Click(object sender, EventArgs e)
{
exit = false;
this.Hide();
}
}
我想要做的是等待在提示對象中按下按鈕,然后繼續進行btn_close_Click()中的下一行。
我該怎么辦? 有沒有更好的方法來實現這一目標?
將事件添加到用戶控件,然后在主窗體上處理這些事件。
在您的用戶控件中:
public event EventHandler<EventArgs> ExitCancelled;
public event EventHandler<EventArgs> ExitApplication;
private void btn_yes_Click(object sender, EventArgs e)
{
ExitApplication?.Invoke(this, EventArgs.Empty);
}
private void btn_no_Click(object sender, EventArgs e)
{
ExitCancelled?.Invoke(this, EventArgs.Empty);
}
處理表單上的事件:
public void prompt1_ExitApplication(object sender, EventArgs e)
{
Application.Exit();
}
public void prompt1_ExitCancelled(object sender, EventArgs e)
{
prompt1.Hide();
enablecontrols();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.