WinForm之间传递的问题 我想在一个主窗体mfrm显示时,显示一个登陆窗体,给这个form传递一个登陆用户的信息。这个登陆窗lgfrm是不能绕过的,我用的是mfrm.showDialog();我不想在mfrm显示之前,load lgfrm.该如何做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你把程序入口点设置在mfrm,在入口处处理lgfrm的信息,这样不就行了吗? 登录窗写带参数的体构造函数,登录窗体构造的时候传递过去比如我想要带回一个string:public lgfrm(out string str){ InitializeComponent();}这样好像不行,因为我不想在lgfrm构造时就传回str。我想在填好登陆信息后传回。 你可以在做一个公共的类。在类中定义你要使用的public 属性y在mfrm中声明公共类的变量x,注意不是对象。然后在登陆窗体中new公共类的对象a,此时给对象的属性赋值。在登陆窗体中new mfrm的对象b。此时可以把mfrm的对象赋给窗体对象的属性b.x=a;这样你就可以在mfrm中用你赋了值的属性了x.y,就是你想要的值了!!1 把你要传回的值写成对话窗类的属性(或者public字段)返回的时候直接调用就可以了。public LoginForm : Form{ string userName; ... public string UserName { get { return userName;} } //添加处理userName的方法。使之返回的时候返回你需要的值}调用:using( LoginForm loginForm = new LoginForm()){ if( loginForm.ShowDialog()== DialogResult.OK) { string userName - loginForm.UserName; }} string userName = loginForm.UserName; 就是不能在lgfrm中new mfrm呀必须是mfrm中 new lgfrm的 你可以在主窗体mfrm设置用来存储登陆信息的字段,然后在构造lgfrm的时候把mfrm的this过去 (构造函数可以这样写public lgfrm(mfrm mainForm)), 之后就可以在lgfrm对象中设置mfrm的属性 或者字段了 在显示mfrm之后再显示lgfrm,可以在mfrm的Form_Activated事件中进行LoginForm loginForm = new LoginForm();loginForm.ShowDialog();只要在事件中控制上面代码只执行一次就可以了 re:niwalker那样的话loginForm.UserName是不能改变的啦 解决了!总结一下:把mfrm的this过去,能够修改mfrm,说明传递的是指针,实际在lgfrm里没有创建mfrm的副本所以,在lgfrm里任何对mfrm的修改都会反映到mfrm本身。谢谢 编程实现word,txt,ppt等格式文件转换为pdf格式文件 在Win7系统下使用SetLocalTime函数设置系统时间总是失败 C# 发传真 请问资源文件怎么使用?(提示需要正确嵌入到程序集) 哪位高手帮解决一下.XML文件问题这题实在是难倒了小女子 不知道为什么生成exe就是不成功 File.SetAttributes ntfs 下设置文件属性 datagrid数据显示样式的问题 C#FTP文件遍历 有关tooltip .net中绝对路径和相对路径 强类型的DataSet(ADO.NET)的一个问题
我想要带回一个string:
public lgfrm(out string str)
{
InitializeComponent();
}
这样好像不行,因为我不想在lgfrm构造时就传回str。
我想在填好登陆信息后传回。
在mfrm中声明公共类的变量x,注意不是对象。
然后在登陆窗体中new公共类的对象a,此时给对象的属性赋值。
在登陆窗体中new mfrm的对象b。
此时可以把mfrm的对象赋给窗体对象的属性
b.x=a;
这样你就可以在mfrm中用你赋了值的属性了
x.y,就是你想要的值了!!1
public LoginForm : Form
{
string userName;
...
public string UserName
{
get { return userName;}
}
//添加处理userName的方法。使之返回的时候返回你需要的值
}调用:using( LoginForm loginForm = new LoginForm())
{
if( loginForm.ShowDialog()== DialogResult.OK)
{
string userName - loginForm.UserName;
}
}
(构造函数可以这样写public lgfrm(mfrm mainForm)), 之后就可以在lgfrm对象中设置mfrm的属性
或者字段了
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();
只要在事件中控制上面代码只执行一次就可以了
把mfrm的this过去,能够修改mfrm,说明传递的是指针,实际在lgfrm里没有创建mfrm的副本所以,在lgfrm里任何对mfrm的修改都会反映到mfrm本身。谢谢