[英]holding the value of a variable in c#.net 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;
}
}
}
我希望在打开表单/应用程序时,首先检查变量的值是否为3,如果是3,则应禁用其上的按钮。
通过使变量static
。
当然,由于您暗示将在程序中多次创建新表单,您必须在构造函数中设置按钮的启用状态(在InitializeComponent
之后)。
如果表单关闭时应用程序关闭您可以将变量保存到flatfile或xml文件。 或者,如果关闭表单时应用程序仍在运行,请在表单之外的其他位置声明变量
使用计数器创建一个静态变量或类似于类的简单单例。 而不是重置值,使用Mod运算符使locklogin%3 == 0,关闭表单。 锁定登录值可以保持递增而不会丢失值。 您将需要在第一次使用变量时处理(例如locklogin!= 0)
你可以使用设置类。 一个很好的例子可以在这里找到 - http://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.