c# winform中,单击关闭了窗体a,不是隐藏,timer tick事件发生,如何让a再显示出来 50

 我来答
freeeeeewind
2013-11-20 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1321万
展开全部

1)首先,Timer不能在窗体a中。因为,如果Timer在窗体a上,当窗体a关闭后,Timer也将销毁,那就不可能发生Timer_Tick事件了。

2)要在Timer_Tick事件中再次打开已经关闭的a,一个简单的方法如下

public partial class A: Form
    {
        private static A instance = null;
        
        //增加一个静态方法,显示窗体A
        public static ShowWindow()
        {
            if(instance == null)
            {
                //创建并显示窗体A
                instance = new A();
                A.Show( );
            }
            else
            {
                //激活已经创建窗体,不需要再显示
                A.Activate( );
            }
        }
        
        //将构造函数改为private
        private A()
        {
            InitializeComponent();
        }
        
        //重写OnClosed方法
        protected override void OnClosed(EventArgs e)
        {
            //释放静态实例instance
            instance = null;
            base.OnClosed(e);
        }
    }

3)在Timer_Tick事件中

 private void timer1_Tick(object sender, EventArgs e)
{
    A.ShowWindow( ); 
}
TableDI
2024-07-18 广告
Excel中的VLOOKUP函数主要用于在表格中进行垂直查找,并返回匹配单元格的值。使用VLOOKUP时,你需要确保两个表格中有共同的列或值(通常作为查找键),这些值应在个参数(即查找值)中指定。接着,你需指定包含数据的表格区域或范围作为第... 点击进入详情页
本回答由TableDI提供
duwu891229
2013-11-20
知道答主
回答量:2
采纳率:0%
帮助的人:2719
展开全部
public partial class Form1 : Form
{
static Form1 __instance;
public static Form1 Instance
{
get
{
if (__instance == null)
{
__instance = new Form1();
}
return Form1.__instance;
}
}

System.Windows.Forms.Timer _timer;

Form1()
{
InitializeComponent();
_timer = new Timer();
_timer.Interval = 6000;
_timer.Tick += _timer_Tick;
_timer.Start();
}

void _timer_Tick(object sender, EventArgs e)
{
this.Show();
}

protected override void OnClosing(CancelEventArgs e)
{
e.Cancel = true;
this.Hide();
}
}

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(Form1.Instance);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
合法注册账号
2013-11-20 · 超过25用户采纳过TA的回答
知道答主
回答量:163
采纳率:0%
帮助的人:53万
展开全部
a A =new a();
a.show()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泉水牛
2013-11-20 · 超过14用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:40.7万
展开全部
关闭了的话只能重新实例化一个了,无法将关闭的再显示,因为已经释放了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式