日期:2014-05-19  浏览次数:20787 次

LoginFrm-->MainForm怎么传不过值,望高手给我看看,谢谢了!!!!!!!!
loginfrm中有radioButton1代表管理员,radioButton2代表客户,我想实现把radioButton1传到mainfrm(即主窗体)
//loginfrm中判断是否管理员登陆!!!!!!
public   bool   isselectmanage()
{
bool   isselectmanage;
if(this.radioButton1.Checked==true)
isselectmanage=true;
else
isselectmanage=false;
return   isselectmanage;
}
//mainform中用委托实现,听说很好用,就试一下
private   delegate   bool   checkstate();
private   void   MainForm_Load(object   sender,   System.EventArgs   e)
{
LoginFrm   login=new   LoginFrm();//
checkstate   ismanage=new   checkstate(login.isselectmanage);//loginfrm中的     isselectmanage方法          
this.label1.Text=ismanage().ToString();//
if(ismanage()==true)//判断是否管理员登陆,虽然每次都是以管理员,但每次显示ismanage()==false
{
.....
}
}

------解决方案--------------------
首先你这个窗体没有调用显示出来 你应该在
LoginFrm login=new LoginFrm();
后面添加
login.ShowDialog(); 这样窗体才能显示出来 并设置登录模式。这点估计是你没有把代码贴全的原因吧,至少在你贴出来的代码没有看见。


另外委托么 这个地方也没有必要用委托了 呵呵。
------解决方案--------------------
麻烦你先看看类,因为类很方便。你的写法比较混乱。
public class frmlogin
{
//管理员
public bool 管理员
{
get
{return radioButton1.Checked;}
set{radioButton1.Checked=value;}
}
}

public void main()
{
frmlogin flogin=new frmlogin();
if(flogin.ShowDialog()==System.Windows.Forms.DialogResults.OK)
{
Application.Run(new form1(flogin.管理员));
}
}
------解决方案--------------------
你在login的类里面点一个public变量 bool isselectmanage 表示是不是管理员登陆,然后
LoginFrm login=new LoginFrm();
if(login.ShowDialog()==DialogResult.OK)
{
if(isselectmanage)
{
}
else
{
}
}
这样最省事吧
或者LoginFrm搞个构造函数 应该也可以吧?
LoginFrm login=new LoginFrm(out isselectmanage)
------解决方案--------------------
必须在对象frmLogin关闭前就把值传出来
frmLogin.FrmClosing += new .......


//这个做法是错的
public class frmlogin
{
//管理员
public bool 管理员
{
get
{return radioButton1.Checked;}
set{radioButton1.Checked=value;}
}
}

public void main()
{
frmlogin flogin=new frmlogin();
if(flogin.ShowDialog()==System.Windows.Forms.DialogResults.OK)
{
Application.Run(new form1(flogin.管理员));
}
}
------解决方案--------------------
晕!
lz在应用程序入口定义了一次loginfrm,然后又在mainfrm的load里面定义了一次loginfrm,这根本就是2个不相干的实例了,应用程序入口登陆的信息没办法弄到你mainfrm的load里面去了