静态类和窗体传值
2021-04-24 00:55
标签:reading event eve name false app 窗体 send ati 静态类StaticData.cs 一般类DynaData.cs Program.cs Form1.cs userControl1.cs userControl2.cs 程序可以有效更改静态类成员的值,userControl中更改的值也会在Program中更新,但是对于动态类,则与预期不符合 静态类和窗体传值 标签:reading event eve name false app 窗体 send ati 原文地址:http://www.cnblogs.com/my-cat/p/7986524.htmlusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体传值
{
public class StaticData
{
string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
public void SayHi()
{
MessageBox.Show("Hi");
}
public void Dispose()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体传值
{
public class Dynadata
{
string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
int age;
public int Age
{
get { return age; }
set { age = value; }
}
public void sayHi()
{
MessageBox.Show("Dynamic Hi");
}
public void Dispose()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体传值
{
static class Program
{
public static StaticData _staticData;
///
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体传值
{
public partial class Form1 : Form
{
public StaticData _staticData;
//
public Dynadata _dynaData = new Dynadata();
public Form1()
{
_dynaData.Name = "dyna cat ";
_dynaData.Age = 1;
InitializeComponent();
this.userControl11 = new UserControl1(ref _dynaData);
this.userControl21 = new UserControl2(ref _dynaData);
_staticData = Program._staticData;
_staticData.Name = string.Empty;
_staticData.Age = 0;
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = _staticData.Name + "\n";
textBox1.Text += _staticData.Age + "\n";
_staticData.SayHi();
}
private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = _dynaData.Name + "\n";
textBox2.Text += _dynaData.Age + "\n";
_dynaData.sayHi();
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace 窗体传值
{
public partial class UserControl1 : UserControl
{
public StaticData _staticData;
//此处需要初始化,否则button1_Click(object sender, EventArgs e)出错
public Dynadata _dynaData = new Dynadata();
public UserControl1(ref Dynadata dynaData)
{
InitializeComponent();
_staticData = Program._staticData;
_dynaData = dynaData;
}
public UserControl1()
{
InitializeComponent();
_staticData = Program._staticData;
}
private void button1_Click(object sender, EventArgs e)
{
_staticData.Name = "static cat ";
_dynaData.Name = "dynamic cat";
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 窗体传值
{
public partial class UserControl2 : UserControl
{
public StaticData _staticData;
public Dynadata _dynaData = new Dynadata();
public UserControl2(ref Dynadata dynaData)
{
InitializeComponent();
_staticData = Program._staticData;
_dynaData = dynaData;
}
public UserControl2()
{
InitializeComponent();
_staticData = Program._staticData;
}
private void button1_Click(object sender, EventArgs e)
{
_staticData.Age = 10;
_dynaData.Age = 11;
}
}
}