sql*_*ild 3 .net c# global-variables retain winforms
我有一个具有按钮的表单,在按钮单击事件上,变量locklogin增加1
当locklogin = 3时,表单按钮被禁用,表单需要关闭.在关闭表单时,locklogin失去了它的价值.
但我希望保持其价值,虽然表格被关闭,当表格再次运行(整个应用程序再次执行),然后按钮仍然被禁用.我该怎么做呢?
public partial class Form1 : Form
{
static int loginlocked;
static int isloginlocked;
public Form1()
{
InitializeComponent();
if (isloginlocked == 3)
{
foreach (Control c in this.Controls)
{ c.Enabled = false; }
}
}
private void button1_Click(object sender, EventArgs e)
{
loginlocked++;
if (loginlocked == 3)
{
foreach (Control c in this.Controls)
{ c.Enabled = false; }
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
isloginlocked = loginlocked;
if (e.CloseReason == CloseReason.UserClosing)
{
if (MessageBox.Show(this, "Really?", "Closing...",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
== DialogResult.Cancel) e.Cancel = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望在打开表单/应用程序时,首先检查变量的值是否为3,如果是3,则应禁用其上的按钮.
我会开始考虑将您的逻辑与UI分开.有多种方法可以实现这一点,我已经包含了一些入门链接.
当单击按钮时,我会有一个Controller或Presenter对象侦听表单中的事件.此Controller对象维护计数器,负责在构造期间创建和销毁表单并设置初始值,例如是否禁用按钮.表单可以尽可能愚蠢,而不必担心这样的业务逻辑.
归档时间: |
|
查看次数: |
3159 次 |
最近记录: |