AB窗体互传参数本质
2024-09-02 20:13:10
一.找了好几个,都不靠谱,不是说不靠谱,自己感觉太繁琐,根本就是本窗体的属性(对象)的传递,1实例化2把实例化后的窗体属性=本窗体的对象
二。传递的的时候都是在互相引用的时候传递,推荐的个人认为最简单的:
1父传子,直接在子窗体的构造函数中传递(当然你也可以在的父传子的时候在父窗体中新建属性,个人认为比较麻烦,然后你再实例化父窗体呵呵,既然子窗体有现成的初始化程序为什么不用呢)
2子传父窗口,也是在引用的时候,但要在子窗体中新建属性,这属性的传递有两个时间
1,父窗体中实例化子窗体,然后直接读取子窗体的属性,即子窗体不出现(意义不大)
2父窗体中实例化子窗体,子窗体显示,输入参数,然后传给父窗体,这又有两个时间
第一个时间:子窗体不关闭传递,需要添加触发事件,比如另外加个按钮,有人说CHANGED事件有人说委托等等(个人认为这种情况少),这时候相当于你在子窗口中向父窗口传参数,你要实例化父窗口,还要在父窗口中建立set父窗口的属性参数,相当于,你把子窗口又变成了父窗口------没意义----微软已经提供了父窗口弹出窗口的控制函数子窗体的”.showdialog()
第二时间关闭的时候就直接传递过来这又有两种情况你可以在主窗体中添加if(“子窗体的”.showdialog()=dialogresult.ok)来判断(反正必须有事件触发),第二时间和子窗口不关闭传递差不多
总结:主要是子传父,微软已经提供了在父窗口得到子窗口关闭后的传递参数的方法,你就用吧,不要再弄什么触发事件了(除非你另有用途当我没说)
下面附一些代码直接考的自己琢磨去吧呵呵
Form1的代码: using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms; namespace WindowToWindow
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.ShowDialog();
if (frm2.DialogResult == DialogResult.OK)
{
textBox1.Text = frm2.tt;
frm2.Close();
}
} private void Form1_Load(object sender, EventArgs e)
{ }
}
} Form2的代码: using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms; namespace WindowToWindow
{
public partial class Form2 : Form
{
public string tt
{
get { return textBox1.Text; }
}
public Form2()
{
InitializeComponent();
} private void Form2_Load(object sender, EventArgs e)
{ } private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
}
}
最新文章
- 如何夯实(Java)编程基础,并深入学习和提高
- 【leetcode】Spiral Matrix
- 51nod 1240 莫比乌斯函数
- MVC系列之一 入门概述
- GIS软件列表
- socket 发送发送HTTP请求
- Codeforces Beta Round #97 (Div. 1)
- (剑指Offer)面试题34:丑数
- linux内核地址mapping
- [置顶] 程序员面试之道(《程序员面试笔试宝典》)之看着别人手拿大把的offer,不淡定了怎么办?
- delphi程序设计之底层原理(有些深度)
- Hadoop 2.2.0 HA构造
- Ubuntu13.04使用Mesa
- .Net学习计划
- 【Java编程】Java学习笔记<;二>;
- 2.Git配置和关联GitHub
- Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制
- sass进阶—函数
- 1.tushare模块的应用
- intellij ideal 在erlang 开发环境遇到的一些小问题
热门文章
- dedecms Fatal error: Out of memory
- python异步编程 (转载)
- git -C <;other-git-repo-path>; [git-command] 指定其它路径的仓库 执行命令
- JavaScript中定义类的方式详解
- Jenkins构建从github上克隆时,报Host key verification failed.
- ansible模块-user
- Nginx的TCP/UDP调度器
- Mysql数据库多对多关系未建新表
- composer查看全局配置
- Xilinx FFT IP核缩放因子说明