如何安全地跨窗体调用Timer控件 从一个窗体调用控制另外一个窗体的控件
2024-08-28 07:11:42
具体的情况是Form1中有一个Timer2时钟,Timer2时钟事件弹出Warning窗体,点击Warning窗体上面的按钮,重新激活一下Form1中的Timer2。从而实现了从一个窗体调用另外一个窗体的控件的目的。
Timer2时钟每次都执行一次就会停止。
首先在Form1.cs中加入代码,弹出warning窗体:
Warning warning = Warning.GetInstance();
warning.Owner = this;
warning.ShowDialog()
然后在Warning.cs中的Button事件中,加入代码:
private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = (Form1)this.Owner;
f1.timer2.Enabled=true;
this.Hide(); }
窗体Warning的实例并没有销毁,而是this.Hide() 隐藏掉。Button触发Form1中Timer2开启。
而防止Warning重复实例化,Warning.cs中,在 Waring的构造函数中加入:
private static Warning instance;
public static Warning GetInstance()
{
if (instance == null || instance.IsDisposed == true)//加一个IsDisposed判断,防止对象被释放了而无法访问
{
instance = new Warning();
instance.Icon = Properties.Resources.DataView;
}
return instance;
}
最新文章
- 自己常用JS和JQ 函数
- Setup Factory 关闭正在运行的程序
- Solaris 和linux 之oracle 数据库的安装
- BZOJ4182 : Shopping
- django models使用学习记录
- mybaits3.2.8 别名包扫描通配符
- 深入理解PHP Opcode缓存原理
- MyBatis(3.2.3) - Handling enumeration types
- Delphi函数指针的两种定义(对象方法存在一个隐藏参数self,所以不能相互赋值)
- FlatBuffers入门
- ORA-12737: Instant Client Light: unsupported server character set CHS16GBK
- linux 解压缩总结
- js模块化规范—CMD规范
- 自动化运维之PSSH
- Legal or Not HDU
- 使用VS2012生成DLL文件(1)
- BIO、NIO、AIO三者的比较
- PHP常亮
- 几个常用的Eclipse插件
- II8部署WCF服务出错
热门文章
- 从零开始的全栈工程师——html篇1.4
- Spring MVC 参数必填项导致客户端报 HTTP 400 并且无法进入断点的问题
- IE浏览器下的渐变背景
- vuejs的双向数据绑定实现原理——object.defineproperty()
- WinDbg:栈帧的含义
- JavaScript专题
- python常用模块(一)
- Spring中<;context:annotation-config/>;的作用
- wmware共享磁盘redhat 5.8挂载问题
- 如何查找Fiori UI上某个字段对应的后台存储表的名称