winform隐藏显示及变量数值保存
问题:
有如下
public class Form1 : System.Windows.Forms.Form
{
private Label sendCount;
//发送条数计数
private static int iSendCount;
a()//某一个函数对条数计数
{
。。。//一些操作
iSendCount += 1; this.sendCount.Text = iSendCount.ToString();
}
//关闭按钮(点窗体上的关闭按钮)
private void form1_Closing(object sender, CancelEventArgs e)
{
this.Visible = false;
tuopan TP = new tuopan();//这是一个托盘类,产生一个托盘
}
}
在托盘类里
//双击(//显示程序窗体)
public void doubleClick(object sender , System.EventArgs e)
{
TrayIcon.Visible = false;
Form1 FDispaly = new Form1();
FDispaly.Visible = true;
}
这样,可以实现显示主窗体form1的显示,但iSendCount又变成0了,我要让iSendCount是多少就多少不改变怎么实现。
很多人都说在托盘类里用form1.Visible = true (我怎么没这个属性呢??)
而且在别的窗体或类里form1.后面(实例化form1的对象里面也没有)没有iSendCount等,为什么呢??
请各位大哥大姐教教我吧。请不要再不负责任的说一句:简单,form1.Visible = true就行了。如果这么简单我也不用这么烦了。最好能自己试过了,不要凭想象
------解决方案--------------------应该是Form1,在Cloing的时候不要关闭,
private void form1_Closing(object sender, CancelEventArgs e)
{
this.Visible = false;
tuopan TP = new tuopan();//这是一个托盘类,产生一个托盘
//加一个这个试试看
e.Cancel = true;
}
在托盘里在把Form1.Visible = true, 显示出来。。。
------解决方案--------------------把form作参数传到托盘里。。。
------解决方案--------------------全局类
------解决方案--------------------我也帮顶了,可以把托盘做成一个函数而不是一个类。放在现实的那个form下,这样就可以使用this.visible这个属性了
------解决方案--------------------/// <summary>
/// 显示隐藏窗口
/// </summary>
/// <param name= "showWindow "> </param>
private void ShowHideWindow(bool showWindow)
{
if(showWindow == true)//显示
{
if(this.ShowInTaskbar==false)
{
this.ShowInTaskbar = true;
this.Visible = true;
//this.Show();
}
if(this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
this.Activate();
}
else//隐藏
{
if(this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
if(this.ShowInTaskbar == true)
{
this.ShowInTaskbar = false;
this.Visible = false;
//this.Hide();
}
}
}
变量可以使用静态类来保存。
------解决方案--------------------已经发到你的短消息里面了
------解决方案--------------------哈哈