ここにあなたのためのオプションがあります-LoginExpired
あなたのでイベントを定義してくださいLoginForm
。タイマーティックイベントハンドラーでこのイベントを発生させます。
public partial class LoginForm : Form
{
public event EventHandler LoginExpired;
public LoginForm()
{
InitializeComponent();
timer.Start();
}
private void timer_Tick(object sender, EventArgs e)
{
OnLoginExpired();
}
protected virtual void OnLoginExpired()
{
if (Visible)
return; // if this form visible, then user didn't authenticate yet
if (LoginExpired != null)
LoginExpired(this, EventArgs.Empty);
}
}
Main
次に、メソッドでこのイベントをサブスクライブします。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (LoginForm loginForm = new LoginForm())
{
if (loginForm.ShowDialog() != DialogResult.OK)
return;
loginForm.LoginExpired += new EventHandler(loginForm_LoginExpired);
Application.Run(new MainForm());
}
}
static void loginForm_LoginExpired(object sender, EventArgs e)
{
LoginForm loginForm = (LoginForm)sender;
if (loginForm.ShowDialog() != DialogResult.OK)
throw new NotAuthenticatedException();
}