| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 965 人关注过本帖
标题:求助:三窗体间数据传递该怎么做?
只看楼主 加入收藏
eivenlong
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-11-8
收藏
 问题点数:0 回复次数:5 
求助:三窗体间数据传递该怎么做?
我写了个程序。是一父多子类型的。原先的设计思路是程序启动时现实父窗体,并在父窗体内同时调用一导航子窗体。通过导航子窗体在各个功能子窗体之间切换。
现在程序本身接近完工。但是忽然想在父窗体的状态栏内设一个lable用以显示当前子窗体的名字。查了很多贴子都不得要领。不知道具体该怎么写。我记得貌似有窗体传递一说。就是form1 form = new form1(this)这种。我用这方法已经成功将导航窗体的名字显示在状态栏内。
但是由于我是通过子窗体导航的。也就是导航窗体上按钮点下后本导航子窗体关闭,然后显示相应功能子窗体的形式。(整个程序运行时主窗体的功能就是一个框架,它是永远不动的。所有显示关闭都是子窗体的工作。)
但是状态栏又属于父窗体。需要显示的名字又是第三个子窗体的名字。所以有点没方向了。

请各位大大帮帮忙。谢谢了。
搜索更多相关主题的帖子: 窗体 数据 
2008-11-08 23:16
shmilylee
Rank: 2
来 自:江苏扬州蹩脚小公司
等 级:论坛游民
威 望:2
帖 子:242
专家分:22
注 册:2007-7-6
收藏
得分:0 
假设有三个窗体,
Form1-主窗体
Form2-导航窗体 //作为桥梁,接收子窗体事件,并在它的父窗体显示出来
Form3-子窗体
代码如下:
Form1-主窗体,有一个button和一个lable,并且lable的Modifiers属性设置为public
程序代码:
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2(this);
            form2.Show();
        }
    }
}


Form2-导航窗体 至少有一个按钮
程序代码:
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        private Form1 form1;

        public Form2(Form1 form1)
        {
            InitializeComponent();
            this.form1 = form1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3();
            form3.showNameEvent += new EventHandler(form3_showNameEvent);
            form3.Show();
        }

        void form3_showNameEvent(object sender, EventArgs e)
        {
            form1.label1.Text = sender.ToString();
        }
    }
}


Form3-子窗体 可以什么都没有,随便设置一下Text属性用来显示
程序代码:
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        public event EventHandler showNameEvent;

        private void Form3_Load(object sender, EventArgs e)
        {
            showNameEvent.Invoke(this.Text,null);
        }
    }
}


太可恶了,居然不能超过100个字符!
这区区100个又怎么能概括我平凡而又伟大的一生!
2008-11-09 00:25
eivenlong
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-11-8
收藏
得分:0 
按照你说的我重新做了测试。实验非常成功。万分感谢!
2008-11-09 09:57
梦心
Rank: 4
来 自:福建平和
等 级:贵宾
威 望:13
帖 子:1910
专家分:0
注 册:2007-5-11
收藏
得分:0 

二楼正解

我清高和我骄傲的倔强,在风中大声的唱:我不听,我不听~~做我自己最特别,呼呼~~啦啦~~~
我的博客园地址: [url]http://[/url]
2008-11-21 11:39
谁与争瘋
Rank: 2
等 级:论坛游民
帖 子:360
专家分:14
注 册:2008-11-18
收藏
得分:0 
全局变量。。。
2008-11-21 15:22
tonid
Rank: 1
等 级:新手上路
帖 子:121
专家分:7
注 册:2008-7-13
收藏
得分:0 
shmilylee
可惜不能拜师啊!
很想跟你学习。
我想如果能加你的QQ话,我会万分感激的!
:-)
2008-11-21 17:31
快速回复:求助:三窗体间数据传递该怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026189 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved