//网站根目录 var __ID_HOME__="#zj_home"; //生产环境设置为true,本地设置为false var __JS_DEBUG__= true; var __JS_APP__ = ""; var __JS_APP_HOME__ = "/"; var __JS_PUBLIC__ = "/Public"; var __JS_HOME__ = "/Template/default/Home/Public"; var _URL_SIGN = "http://zhangjunbk.com:80/sign"; var _URL_LOGIN = "http://zhangjunbk.com:80/login"; var _URL_REG = "http://zhangjunbk.com:80/reg"; var _URL_FORGET = "http://zhangjunbk.com:80/forget"; var _URL_SEND_EMAIL = "http://zhangjunbk.com:80/sendEmail"; var _URL_SEND_MOBILE = "http://zhangjunbk.com:80/sendMobile"; var _URL_RELATION_EMAIL = "http://zhangjunbk.com:80/relationEmail"; var _URL_SIGN_RELATION_EMAIL = "http://zhangjunbk.com:80/sign_relation"; var _URL_FRONT_LOGOUT="/frontlogout"; var _URL_CHECK_LOGIN = "http://zhangjunbk.com:80/check_login"; var _URL_PAY_POINTS = "http://zhangjunbk.com:80/payPoints"; var _URL_PAY_POINTS_VIDEO = "http://zhangjunbk.com:80/payPointsVideo"; var _URL_USER_POINTS = "http://zhangjunbk.com:80/uindex"; var _URL_AJAX_STOCK_SEALING = "http://zhangjunbk.com:80/ajaxStockSealing"; var _URL_API_WX_CREATE = "http://zhangjunbk.com:80/wxV2Create"; var _URL_API_WX_CREATE_NATIVE_REWARD = "http://zhangjunbk.com:80/wxV2CreateNative_reward"; var _URL_CENTER_USER = "http://zhangjunbk.com:80/centerUser"; var _URL_QQ = "{https://www.zhangjunbk.com/oauth/callback/}";

Application.OpenForms

系统 1808 0
今天不小心遇到一个有点弱智的问题,当然这个问题基本对你没有任何影响。

.NET FX 2.0 WinForm 提供了 Application.OpenForms 属性,便于我们获取已 "打开" 的窗体。相信下面的代码你非常熟悉。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form form = Application.OpenForms["form2"];
if (form == null)
{
form = new Form2();
}

form.Show();
form.BringToFront();
}
}

这代码会有问题吗?跟着我做……

创建 WinForm 项目,然后创建 Form1、Form2 两个窗体,在 Form1 上添加一个按钮,然后输入上述事件代码。注意,我们目前没有修改任何 Form2 的设置。运行一下,多次点击按钮,你看到了什么? 这就是我说的问题,Form2 被多次创建,也就是说 Application.OpenForms["form2"] 始终返回 null。怎么会这样?打开 Form2.Designer.cs,看看 InitializeComponent()。
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Text = "Form2";
}

倒~~~~ 自动生成的代码根本没有 this.Name="Form2"。一旦更改 Form2.Size 或其他属性,代码才会变成下面这样。
private void InitializeComponent()
{
this.SuspendLayout();
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(711, 427);
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);

}

好了,小笑话到此结束。本文没有多大实际意义,纯粹搞笑~~~~~~

Application.OpenForms


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论