简述:最近在做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窗体利用单例子窗体传值父窗体的更多相关文章

  1. 20150812 Asp.net 父窗体获取子窗体的返回值,更新父窗体文本控件(应用)

    1. 父窗体 **************************************** using System;using System.Collections;using System.C ...

  2. 获取当前进程(程序)主窗体句柄并设置wpf的父窗体为此句柄

    有时候在c++调用wpf控件的时候,wpf控件想自己显示窗体,但需要设置owner属性.迂回解决办法是设置wpf的window窗体的父窗体为进程的句柄. 1.获取当前进程id int id = Pro ...

  3. WinForm 子窗体在父窗体范围内移动,不能出父窗体 摘自于网络

    详细解释:1, 主窗体Form1属性IsMdiContainer设为True,并添加ToolStrip控件, Toolstrip中添加一个按钮toolStripButton1.         2,添 ...

  4. C# Form窗体子窗口关闭时刷新父窗体中的datagridview

    解决该问题可以用委托,但是还有更简单方便的两种方法: 方法一:将主窗体实例保存到子窗体 show  form2的时候设置一下 owner为form1 Form2 f2 = new Form2(); / ...

  5. 关于使用struts2时子窗体页面跳转后在父窗体打开的问题以及Session过期后的页面跳转问题

    问题1:传统的系统界面,iframe了三个页面,上,左,右,用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../adminAction/admin_logout ...

  6. winform继承窗体,无法修改父窗体控件问题处理笔记

    问题描述: 一个窗体集成父窗体,发现无法直接修改父窗体的控件,比如修改大小等,父窗体控件已经设置为public,如果做成一个dll被引用无此问题 特征: 不禁使父窗体控件,就算新加一个控件也会这样:鼠 ...

  7. 【winform】userControl刷新父窗体的datagridview

    1.ContextMenuStrip 获取右键控件名称 this.contextMenuScriptScore.SourceControl.Name; //当前控件名 2.radiobutton 分组 ...

  8. C# 父窗体与子窗体之间委托

    先实例化子窗体jobForm,然后让 jobForm.TransfEvent += job_TransfEvent;显示子窗体 if (jobForm.DialogResult != DialogRe ...

  9. 父窗体的委托,子窗体注册,this.Owner是关键

    //声明委托 public delegate void RefreshParentHandler<T>(T obj); //父窗体的委托 public RefreshParentHandl ...

随机推荐

  1. 安装react-native-cli工具(三)

    设置淘宝镜像 (这一步可以省略) npm config set registry https://registry.npm.taobao.org --global npm config set dis ...

  2. 1、看源码MVC如何实例化控制器?

    我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器, ...

  3. C# -- DateTime与TimeSpan

    1. DateTime的使用 DateTime dt = DateTime.Now; StringBuilder sb = new StringBuilder(); sb.AppendLine(str ...

  4. leetcode之缺失的第一个正数

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0]输出: 3示例 2: 输入: [3,4,-1,1]输出: 2示例 3: 输入: [7,8,9,11,12] ...

  5. 换了网线异常了,CRS无法正常启动,clssnmSendingThread: sending status msg to all nodes

    换了网线异常了,CRS无法正常启动,clssnmSendingThread: sending status msg to all nodes同事换网线前我将节点2正常关闭了,换完网线告诉我,发现节点2 ...

  6. [Linux] linux路由表

    路由表用于决定数据包从哪个网口发出,其主要判断依据是目标IP地址Linux路由表其实有2个主要概念:按顺序走路由策略,在路由策略对应的路由表中匹配规则路由策略(rule)路由表(table) 查看所有 ...

  7. Kali_Linux 中文乱码 修改更新源及更新问题

    Kali_Linux 中文乱码 修改更新源及更新问题 中文乱码问题 kali默认没有中文字符 当以中文安装或者切换编码换为中文后会出现乱码的情况 解决方法: 确定locales已经安装好, 使用 ap ...

  8. linux vscode 编译配置

    linux 环境下,g++和clang都可以作为C++的编译器,我这里选择使用的是clang. 首先是插件选择: (1) C/C++ 微软自带的C/C++插件. (2) C/C++ Clang Com ...

  9. AudioFormat.Encoding

    https://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/AudioFormat.Encoding.html

  10. C# 委托汇总

    委托汇总以及遗留问题: using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...