子窗体调用父窗体方法

zj_8092 2012-08-23 12:00:07
你父窗体
public partial class MainForm1 : Form
{
public MainForm1()
{
InitializeComponent();
}
private void CreateFormInstance(string formName)
{
try
{
bool flag = false;
//遍历主窗口上的所有子菜单
for (int i = 0; i < this.MdiChildren.Length; i++)
{
// 如果所点的窗口被打开则重新激活
if (this.MdiChildren[i].Tag.ToString().ToLower() == formName.ToLower())
{
this.MdiChildren[i].Activate();
this.MdiChildren[i].Show();
this.MdiChildren[i].WindowState = FormWindowState.Normal;
flag = true;
break;
}
}
if (!flag)
{
//如果不存在则用反射创建form窗体实例。
Assembly asm = Assembly.Load("GZCRB");//程序集名
object frmObj = asm.CreateInstance(formName);//程序集+form的类名。
DockContent frms = (Form)frmObj as DockContent;
//tag属性要重新写一次,否则在第二次的时候取不到。原因还不清楚。有知道的望告知。
frms.Tag = formName.ToString();
frms.MdiParent = this;
frms.Show(dockPanel1);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
}
}
}
MainForm1 的this.IsMdiContainer = true;

子窗体from2怎么调用 MainForm1中 CreateFormInstance()方法
...全文
169 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanhai96 2012-08-23
  • 打赏
  • 举报
回复
直接在窗体1调用窗体2的事件方法是可以实现的。如下,点击窗体1的按钮会调用窗体2的button1_Click方法,而这个方法把Form3显示出来。
Form1的按钮事件
private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2();
form2.button1_Click(this, EventArgs.Empty);
}

Form2的按钮事件
public void button1_Click(object sender, System.EventArgs e)
{
form3 = new Form3();
form3.Show();
}

将你上面的方法可以定义为类似的某个按钮或控件的事件即可。
lanhai96 2012-08-23
  • 打赏
  • 举报
回复
试试窗体间的事件传递
OptionForm form = new OptionForm();
//注册事件
form.OptionSettingChanged += new EventHandler(form_OptionSettingChanged);
form.ShowDialog();

可以在百度搜搜。。。。。
zj_8092 2012-08-23
  • 打赏
  • 举报
回复
如果改为private void CreateFormInstance(string formName)

{}

怎么调用
正在加载昵称 2012-08-23
  • 打赏
  • 举报
回复
CreateFormInstance为私有的实例方法,只可以在MainForm内部调用
zj_8092 2012-08-23
  • 打赏
  • 举报
回复
试了还是不能解决问题

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧