程序分主窗体和登陆窗体,公共类字段的赋值是在登陆窗体中进行,当登陆窗体关闭后需要在主窗体访问已经在登陆窗体进行赋值了的公共类里的字段。(现在的问题是当在主窗体调用公共类的值时,值为空,想问下这是为什么呢?)
公共类如何下(只有一些公共字段,用于保存一些常用的数值,想在主窗体和其它的窗体调用):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MACClass
{
public class CommonClass
{
public string Mac = null;
public string loginStyle = null;
public string userName = null;
public string passWord = null;
public string systemVersion = null;
public string computerName = null;
public string computerUserName = null;
public string VirtualScreenWitdh = null;
public string VirtualScreenHeight = null;
}
}
登陆窗体对公共类进行赋值如下:
public CommonClass common = null;
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
try
{
common = new CommonClass();
common.loginStyle = LoginStyle;
common.passWord = passWord;
common.userName = userName;
common.computerName = computerName;
common.computerUserName = computerUserName;
common.Mac = MAC;
}
}
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.DialogResult = DialogResult.OK;
frmMain frm=new frmMain();
frm.commonClass=common ;
}
主窗体调用公共类字段代码:
public CommonClass commonClass = null;
private void frmMain_Load(object sender, EventArgs e)
{
commonClass = new CommonClass();
string sssssssssssssssssss = commonClass.Mac;
MessageBox.Show(sssssssssssssssssss);
}
公共类如何下(只有一些公共字段,用于保存一些常用的数值,想在主窗体和其它的窗体调用):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MACClass
{
public class CommonClass
{
public string Mac = null;
public string loginStyle = null;
public string userName = null;
public string passWord = null;
public string systemVersion = null;
public string computerName = null;
public string computerUserName = null;
public string VirtualScreenWitdh = null;
public string VirtualScreenHeight = null;
}
}
登陆窗体对公共类进行赋值如下:
public CommonClass common = null;
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
try
{
common = new CommonClass();
common.loginStyle = LoginStyle;
common.passWord = passWord;
common.userName = userName;
common.computerName = computerName;
common.computerUserName = computerUserName;
common.Mac = MAC;
}
}
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.DialogResult = DialogResult.OK;
frmMain frm=new frmMain();
frm.commonClass=common ;
}
主窗体调用公共类字段代码:
public CommonClass commonClass = null;
private void frmMain_Load(object sender, EventArgs e)
{
commonClass = new CommonClass();
string sssssssssssssssssss = commonClass.Mac;
MessageBox.Show(sssssssssssssssssss);
}
解决方案 »
- 「玩一玩」GDI+绘制极坐标图(Polar Diagram)
- 求帮忙 如何用windows mobile6 发送手机上的图片到远程数据库
- c# Process.Start()问题
- HELP!我用C#写的一个windows应用程序,出现这样的怪事...
- 用代码生成并保存word问题
- 哪里有IIS6.0 的详细配置?
- [C#]:如何将从数据库中直接存取图片?
- 实例化的问题,急!!!
- C# 连接mysql数据库调试出现Access denied for user 'guru2b'@'localhost' to database '
- 如何理解:委托的 适合作“匿名“调用”的意思?熟悉的大侠给一个实例详细解释一下可以么?
- 想问TabControl控件的切换原理
- AutoCAD二次开发,如何选择图形并且复制到剪贴板并粘贴?
实例化 CommonClass 类了。
直接通过 CommonClass.变量名 或者 CommonClass.方法 来访问设置
他们之间有关系么? 很明显 没有。这样给你比喻 你有2个窗口 主 和 副 这个2个窗体
程序启动,
程序 new 了下 主 窗口。
主窗口 new了下 副窗口
副窗口 new 主窗口你在副窗口里 对 主窗口操作 或者取 主窗口里public的值 都是空的,,
因为副窗口里new的主窗口 并不是现在有的主窗口。,。。如果你对 对象 的理解深刻的话 就不会出现这个问题了怎么解决。。很简单在副窗口里 public 主 "主";
在主窗口里
副 "副"=new 副;
副.主=this;
这样 副窗口就可以操作主窗口了