当前位置: 首页 > wzjs >正文

辽宁省建设工程信息网电子保函李勇seo的博客

辽宁省建设工程信息网电子保函,李勇seo的博客,太原建筑公司网站,毕设做网站有什么题目版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 当项目中有多个窗体时(在本节中为两个窗体:Form1和Form2),窗体间传递数据有以下几种方…

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

当项目中有多个窗体时(在本节中为两个窗体:Form1和Form2),窗体间传递数据有以下几种方法。

7.8.1 在公共类中定义公共变量

VB.Net中可以在模块中定义全局变量作为整个项目的变量,但是在C#中没有模块概念,只能考虑使用公共类的公共变量。

【例 7.5【项目:code7-005】通过公共类的公共变量传递数据。

通过菜单【项目】|【添加模块】,或者右击【解决方案资源管理器】项目名称,在弹出菜单中单击【添加】|【类】。在【添加新项】窗口中使用默认的模块名称“Class1.cs”,单击【添加】按钮。

在Class1.cs的代码中定义:

static public string passParameter;

在Form1中增加一个Button控件,在Form2上增加一个Label控件。

Form1中的代码:

        private void button1_Click(object sender, EventArgs e)

        {

            //设置公共变量的值

            Class1.passParameter = "公共变量";

            //定义Form2类型

            Form2  frm2 = new Form2();

            //显示Form2

            frm2.ShowDialog();

        }

Form2中的代码:

        private void Form2_Load(object sender, EventArgs e)

        {

            label1.Text = Class1.passParameter;

        }

运行结果如下图所示:

图7-15 Form2上显示字符串

7.8.2 Form1中的数据传递到Form2方法1

【例 7.6【项目:code7-006】修改Form2的构造函数传递数据。

在Form2的代码中找到构造函数:

        public Form2()

        {

            InitializeComponent();

     }

在Form2后面的括号内输入:

string passParameter

这就是我们需要传递的参数。

增加一个窗体级的变量,同时完善代码。修改后的代码如下:

        string passedParameter;

        public Form2(string passParameter)

        {

            InitializeComponent();

            this.passedParameter = passParameter;

     }

注意:不能删除 InitializeComponent(),否则会影响窗口的设计,只需要在InitializeComponent()后面增加代码即可。

在Form2上增加一个label控件,同时修改Form2_Load事件代码:

        private void Form2_Load(object sender, EventArgs e)

        {

            label1.Text = passedParameter;

        }

Form1中设置按钮按下事件的代码:

        private void button1_Click(object sender, EventArgs e)

        {

            Form2 frmNew = new Form2("这是Form1传递给Form2的字符串");

            frmNew.ShowDialog();

        }

运行结果如下图所示:

图7-16 在Form2窗体上显示传递的数据

7.8.3 Form1中的数据传递到Form2方法2

【例 7.7【项目:code7-007】修改Form2中变量的访问级别。

先在Form2中定义一个Public级别变量,然后在Form1中定义(实例化)Form2后,就可以使用这个变量了。

Form2中的代码:

        public string passedParameter;

        private void Form2_Load(object sender, EventArgs e)

        {

            label1.Text = passedParameter;

        }

Form1中的代码:

        private void button1_Click(object sender, EventArgs e)

        {

            Form2  frmNew=new Form2();

            frmNew.passedParameter = "这是Form1传递给Form2的字符串";

            frmNew.ShowDialog();

        }

运行结果同【例 7.7】。

7.8.4 Form2中的数据传递回Form1方法1

【例 7.8【项目:code7-008】定义Form1类型的项目公共变量。

将Program.cs中的代码修改为:

        public static Form1 newForm1;

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            newForm1 = new Form1();

            Application.Run(newForm1);

        }

在Form1中添加1个Label控件和2个Button控件,在Form2中添加1个Button,名称均使用默认名称。

Form1中的代码如下:

public string passedWords;

        private void button1_Click(object sender, EventArgs e)

        {

            Form2 newForm2 = new Form2() ;

            newForm2.ShowDialog();

        }

        private void button2_Click(object sender, EventArgs e)

        {

            label1.Text = passedWords;

        }

在Form2中加入一个按钮,按钮单击代码:

        private void button1_Click(object sender, EventArgs e)

        {

            Program.newForm1.passedWords = "这是Form2传递回Form1的字符串";

            this.Close();

        }

由于Program.newForm1是公共变量,因此在Form2中可以调用它。

点击Form1上的Button1,出现Form2,在点击Form2上的Button1,此时将TextBox1中的文本传递给了Form1的变量passedWords,同时Form2关闭。然后单击Form1上的Button2,Label1的文本将变为变量passedWords的内容。

图7-19 在Form1窗体上显示传回的数据

如果仅仅是为了修改Form1上Label1的文本,可以将Form1.Designer.cs中的代码

private System.Windows.Forms.Label label1;

修改为:

public System.Windows.Forms.Label label1;

然后直接在Form2的Button1按下事件中使用如下代码:

        private void button1_Click(object sender, EventArgs e)

        {

            Program.newForm1.label1.Text = "这是Form2传递回Form1的字符串";

            this.Close();

        }

7.8.5 Form2中的数据传递回Form1方法2

【例 7.9【项目:code7-009】使用窗体的Owner属性。

在Form1中添加1个Label控件和1个Button控件,在Form2中添加1个Button,名称均使用默认名称。

将Form1.Designer.cs中的代码

private System.Windows.Forms.Label label1;

修改为:

public System.Windows.Forms.Label label1;

Form1中的代码如下:

    public string passedWords;

        private void button1_Click(object sender, EventArgs e)

        {

            Form2 newForm2 = new Form2();

            //Form1(Me)设置为Form2的所有者

            newForm2.ShowDialog(this);

        }

        private void button2_Click(object sender, EventArgs e)

        {

            label1.Text = passedWords;

        }

Form2中的代码如下:

        private void button1_Click(object sender, EventArgs e)

        {

            Form1 frm;

            //通过Form2的所有者获得Form1

            frm = (Form1)this.Owner;

            frm.label1.Text = "这是Form2传递回label1的字符串";

            frm.passedWords = "这是Form2传递回passedWords的字符串";

            this.Close();

     }

运行结果如下图所示:

图7-20 在Form1窗体上显示传回的数据

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录

http://www.dtcms.com/wzjs/254767.html

相关文章:

  • 企业网站建设排名客服在线资源搜索神器
  • 贵阳网站建设zbcskj百度快快速排名
  • 阿拉善盟网站制作今日新闻大事
  • 免备案网站主机搜狗seo软件
  • 做网站如何月入10万免费入驻的卖货平台
  • 网站开发建设费用包括那些2022年最火的新闻摘抄
  • 17一起做网站广州友情链接交换网站
  • 个人可以做外贸网站吗官网设计比较好看的网站
  • 教人做窗帘的视频网站李守洪
  • 高端网站建设一般多少钱哪些平台可以免费打广告
  • 中山市城乡和住房建设局网站坚决把快准严细实要求落实到位
  • 在别的公司做的网站可以转走吗口碑营销的定义
  • 做网站会用到的色彩代码单词山东网站seo
  • 网站开发脚本解析器软文营销方法有哪些
  • 粘贴以下代码到网站首页代码的与标签之间软文写作范文
  • 养生网站建设免费任何小说都能搜到的软件
  • 鹤壁市淇县网站建设恢复正常百度
  • wordpress bingo主题刷关键词排名seo软件
  • 成都房地产公司前十名seo优化有百度系和什么
  • 网站落地页如何做整合营销传播成功案例
  • 建设部特殊工种查询网站产品营销策略
  • 有没有免费的广告平台夫唯seo怎么样
  • 如何用github做网站cpa推广接单平台
  • php cms网站建设关键词有几种类型
  • 广州网站制作有哪些成都外贸seo
  • 网站的策划方案长沙seo优化服务
  • 网站开发微信提现功能南宁百度快速排名优化
  • 网站论坛做斑竹百度爱采购服务商查询
  • 上海建材网站电商网站开发需要多少钱
  • 佛山做网站的1688精品货源网站入口