什么是微信朋友圈广告优势推广,有哪些优势

c#&父子窗口通信,多窗口,mdi窗口。
非委托/利用委托
网上搜索的关于C#的文章多得不胜枚举,但没有一篇是实用的,本人的实实在在绝对能运行,解决父子窗口通信问题,mdi窗口问题,而且简单易懂.......
我们这里假设已经存在了两个窗体分别为:FormFather(父窗体)(父窗体的IsMdiContainter要设置为true)和FormChild(子窗体),而父窗体中有一个名为Btn_OpenChild的按钮,用来打开子窗体,子窗体中也有个名为Btn_IsTrue按钮和一个TextBox控件。当TextBox控件中输入“True”时,父窗体的Btn_OpenChild可用,并关闭子窗体,当输入其它任何字符或字符串父窗体的Btn_OpenChild都不可用而不关闭子窗体,当然刚启动程序时的父窗体的Btn_OpenChild按钮是可用的。下面是实现的代码:
1//下面是主窗体的代码
3using System.Collections.G
5using System.D
6using System.D
7using System.T
8using System.Windows.F
10namespace MDIFormDemo
12 public partial class FormFather : Form
14 public FormFather()
16 InitializeComponent();
19 private void OpenChild()//在MDI父窗体中显示子窗体
21 foreach (Form f in this.MdiChildren)
23 if ((f) is FormChild)
25 f.Activate();
29 FormChild frm = new FormChild(this);
30 frm.MdiParent =
31 frm.Show();
34 private void FormFather_Load(object sender, EventArgs e)
36 OpenChild();//父窗体被打开时,子窗体也同时被打开
38 private void Btn_OpenChild_Click(object sender, EventArgs
40 OpenChild();//如果Btn_OpenChild可用,则点击此按钮也能打开子窗体
42}主窗体中没有什么特别的,只是注意第29行的代码中的“this”,接合子窗体的代码你就能明白为何要加上这个“this”了(平时只为了打开子窗体时,我们都不会需要在括号中输入“this”)。
//下面是子窗体的代码
2using System.Collections.G
4using System.D
5using System.D
6using System.T
7using System.Windows.F
9namespace MDIFormDemo
11 public partial class FormChild : Form
13 private FormFather MyF
14 public FormChild (FormFather f)
16 InitializeComponent();
17 MyForm =
20 private void FormChild_Load(object sender, EventArgs e)
25 private void Btn_IsTrue_Click(object sender, EventArgs e)
27 if (this.textBox1.text == "True")
29 MyForm.Btn_OpenChild.Enabled =
30 this.Close();
34 MyForm.Btn_OpenChild.Enabled =
用委托来实现用观察者模式
1. 在FormFather类里定义一个方法private void DisableMenu(bool flag)
2. FormChild类里定义一个委托
public delegate void InputTrueHandler(bool flag);
public InputTrueHandler MyH
在OpenChild()方法里实例化FormChild后将DisableMenu方法注册到实例化后的FormChild对象的InputTrueHandler类型委托MyHandler上
FormChild frm = new FormChild();
frm.MdiParent =
frm.MyHandler+= new FormChild.InputTrueHandler(DisableMenu)
frm.Show();
4. Btn_IsTrue_Click改为如下:
private void Btn_IsTrue_Click(object sender, EventArgs e)
if (this.textBox1.text == "True")
if(MyHandler!=null)
MyHandler(true);
this.Close();
if(MyHandler!=null)
MyHandler(false);
这样子窗体就不用知道父窗体的存在,从而解除2个窗体间的偶合,让子窗体复用性更高
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。C#如何从一个窗体跳转到另一个窗体?
C#如何从一个窗体跳转到另一个窗体?
09-10-09 &
用另一个窗体的构造函数的参数
请登录后再发表评论!
要跳转到的窗体名 变量名 = new 要跳转到的窗体名();   //首先先创建要跳转到的窗体对象 变量名.Show();  // 显示(打开)要跳转到的窗体例:FromForm newForm = new FromForm();newForm.Show();
请登录后再发表评论!在我们的编程工作中,在多个程序中都会需要某个功能的窗体,比如登录窗口、打印窗口、另存为窗口等等,如果在每个程序中都单独编辑很是费时费力,如果能将之前程序中编辑好的窗体直接复制到新程序中使用则会非常省力。
下面小编就说明如何复用窗体:
Microsoft Visual Studio 2010
打开Microsoft Visual Studio 2010, 新建名字为【窗体复用】的程序。
在该程序添加新的窗体,点击右键选择【添加】-【windows窗体】。
新建login.cs窗体,在新窗体界面上放置合适的控件:
添加2个按钮控件;
给用户输入的2个textbox控件。
这样我们用于复制的登录窗体就制作好了,接下来我
们将把这个窗体复制到新建的程序中。
再新建名字为【窗体复用2】的新程序。
回到第一个【窗体复用】的程序目录,找到login开头的后缀为cs、designer.cs、resx等3个最后的文件,右键复制。
再来到新程序的目录下,将3个文件粘贴到该目录中。
打开新程序,在资源管理器界面中点击【显示所有文件】。
在资源管理器中可以看到处于隐藏状态的login.cs。
右键点击login.cs,在右键菜单中选择【包括在项目中】。
稍等片刻等待资源管理器刷新完成后,就可以看到login.cs已经被加入到本程序了,打开login.cs就可以看到完整的窗体界面了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:153107次
积分:3106
积分:3106
排名:第9510名
原创:143篇
转载:190篇
评论:15条
(8)(26)(6)(9)(22)(24)(7)(9)(24)(17)(14)(7)(2)(3)(10)(21)(15)(11)(18)(6)(4)(1)(8)(8)(2)(7)(9)(6)(8)(7)(5)(7)(2)

我要回帖

更多关于 朋友圈广告推广优势 的文章

 

随机推荐