C#Winform窗体利用单例子窗体传值父窗体
简述:最近在做C#和HALCON编程,要用到单例的参数由子窗体改变父窗体的值。此例为简化版
1,点击系统设置

2,弹出子窗体,在其输入修改参数后点修改按钮

3,点击确定按钮后,关闭子窗体后,主窗体textbox值改变

4,单例程序如下:
public class Student
{
//创建单例类,内部静态类方法
private Student() { }//私有构造函数
class Nested
{
internal static readonly Student instance = new Student();
}
public static Student Instance
{
get { return Nested.instance; }
} //创建字段和其属性
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int chinses; public int Chinses
{
get { return chinses; }
set { chinses = value; }
}
private int math; public int Math
{
get { return math; }
set { math = value; }
}
}
5,子窗体程序
public Setting()
{
InitializeComponent();
}
Student stu= Student.Instance; //创建单例类的对 private void Setting_Load(object sender, EventArgs e)
{ } private void BtnChange_Click(object sender, EventArgs e)
{
stu.Name = this.textBoxName.Text;//把子窗体textbox显示值赋给字段的属性
stu.Chinses = Convert.ToInt32(this.textBoxChinese.Text);
stu.Math = Convert.ToInt32(this.textBoxMath.Text);
}
6,父窗体程序
Student stu = Student.Instance;//创建单例类
private void MainForm_Load(object sender, EventArgs e)
{
this.tBName.Text = "Weber";//主窗体加载显示内容
this.tBChinese.Text = Convert.ToString();
this.tBMath.Text = Convert.ToString();
} private void ToolStripButton1_Click(object sender, EventArgs e)
{
Setting mySetting = new Setting();
mySetting.ShowDialog();//子窗体弹出 this.tBName.Text = stu.Name;//字段属性的值赋给textbox值
this.tBMath.Text = Convert.ToString(stu.Math);
this.tBChinese.Text = Convert.ToString(stu.Chinses); }
7,总结
新手一枚,如有错误请指正!
C#Winform窗体利用单例子窗体传值父窗体的更多相关文章
- 20150812 Asp.net 父窗体获取子窗体的返回值,更新父窗体文本控件(应用)
		
1. 父窗体 **************************************** using System;using System.Collections;using System.C ...
 - 获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄
		
有时候在c++调用wpf控件的时候,wpf控件想自己显示窗体,但需要设置owner属性.迂回解决办法是设置wpf的window窗体的父窗体为进程的句柄. 1.获取当前进程id int id = Pro ...
 - WinForm 子窗体在父窗体范围内移动,不能出父窗体 摘自于网络
		
详细解释:1, 主窗体Form1属性IsMdiContainer设为True,并添加ToolStrip控件, Toolstrip中添加一个按钮toolStripButton1. 2,添 ...
 - C# Form窗体子窗口关闭时刷新父窗体中的datagridview
		
解决该问题可以用委托,但是还有更简单方便的两种方法: 方法一:将主窗体实例保存到子窗体 show form2的时候设置一下 owner为form1 Form2 f2 = new Form2(); / ...
 - 关于使用struts2时子窗体页面跳转后在父窗体打开的问题以及Session过期后的页面跳转问题
		
问题1:传统的系统界面,iframe了三个页面,上,左,右,用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../adminAction/admin_logout ...
 - winform继承窗体,无法修改父窗体控件问题处理笔记
		
问题描述: 一个窗体集成父窗体,发现无法直接修改父窗体的控件,比如修改大小等,父窗体控件已经设置为public,如果做成一个dll被引用无此问题 特征: 不禁使父窗体控件,就算新加一个控件也会这样:鼠 ...
 - 【winform】userControl刷新父窗体的datagridview
		
1.ContextMenuStrip 获取右键控件名称 this.contextMenuScriptScore.SourceControl.Name; //当前控件名 2.radiobutton 分组 ...
 - C#  父窗体与子窗体之间委托
		
先实例化子窗体jobForm,然后让 jobForm.TransfEvent += job_TransfEvent;显示子窗体 if (jobForm.DialogResult != DialogRe ...
 - 父窗体的委托,子窗体注册,this.Owner是关键
		
//声明委托 public delegate void RefreshParentHandler<T>(T obj); //父窗体的委托 public RefreshParentHandl ...
 
随机推荐
- jfinal shiro共享
			
和上一篇tomcat sexxion共享一样,用的也是redis 代码: package com.test.shiro; import com.jfinal.log.Log; import com.j ...
 - 织女星开发板使用RISC-V核驱动GPIO
			
前言 织女星开发板是OPEN-ISA社区为中国大陆地区定制的一款体积小.功耗超低和功能丰富的 RISC-V评估开发板,基于NXP半导体四核异构RV32M1主控芯片. 两个RISC-V核:RI5CY + ...
 - 脚本批量执行Redis命令
			
1.将命令写在文件中 数据量比较大的话,建议用程序去生成文件.例如: List<String> planIdList = planDao.findAll().parallelStream( ...
 - MongoDB(五):更新文档、删除文档
			
1. 更新文档 MongoDB的uptade()和save()方法用于将集合中的文档更新.update()方法更新现有文档中的值,而save()方法是传递文档数据替换现有文档.从3.2版本开始,Mon ...
 - Cesium 限制相机进入地下
			
有时我们在Cesium操作时,点击鼠标中间滚轮可更改视角,有时会使相机进入地下,导致体验很差,网上说了很多中方法,效果都不好或者没效果,下面是我翻了源码找到的方法,亲测有效.如有问题可按照专栏上的联系 ...
 - scrapy框架(三)
			
scrapy框架(三) CrawlSpider类 创建CrawlSpider # 创建项目后 $ scrapy genspider -t crawl spider_name website_doma ...
 - Ubuntu18.04搭建测试环境
			
前言 说一下我的情况,之前由于我的云服务器数据库的root账号密码123456太简单,而在之前的博客中也泄露出了我的云服务器的IP地址,导致有人远程连接我的数据库,删除了项目数据库里的数据只剩下WAR ...
 - asp.net core web应用以服务的方式安装运行
			
目录 一.方案:使用Microsoft.Extensions.Hosting.WindowsServices实现: 一.方案:使用Microsoft.Extensions.Hosting.Window ...
 - Python 之列表切片的四大常用操作
			
最近在爬一个网站的文档的时候,老师要求把一段文字切割开来,根据中间的文本分成两段 故学习了一段时间的切片操作,现把学习成果po上来与大家分享 1.何为切片? 列表的切片就是处理列表中的部分元素,是把整 ...
 - Cross-Site Scripting:Persistent 跨站点脚本:持久性