我想要把登陆窗体的用户名和角色显示在第二个窗体上
在登陆窗体我暴露了
public static string loginname;
public static string loginrole;
public string chuanzhiName
{
get
{
           return  loginname=this.Login_TB.Text.Trim().ToString();
}
set
{
              loginname=value;
}
}
public string chuanzhiRole
{
get
{
           return  loginrole=this.LoginRole_Comb.Text.Trim().ToString();
}
set
{
loginrole=value;
}
}
现在的问题是:我在第二个窗体怎么搞也得不到这个值啊,我该怎么写才可以啊,写在哪个地方啊
写在窗体生成器外面好象this点不出东西..我在第二个窗体的构造函数里写也没用,希望知道的帮我一下,好人一生平安,或者其他的方法也行,只要把值传过去就可以了
希望给个完整的代码.........

解决方案 »

  1.   

    参看
    http://blog.csdn.net/knight94/archive/2006/04/06/652394.aspx
      

  2.   

    public class MyLogin
    {
    public static string loginname;
    public static string loginrole;
    ...
    }
    你在登陆窗体关闭前,将用户名和角色名付给上面两个静态变量。
    在其它地方,直接用:
    MyLogin.loginname
      

  3.   

    to JasonHeung
    这是我在登陆窗体的代码
    {
    MessageBox.Show("登录成功!!");
    UserForm uf=new UserForm();
    uf.Show();
    loginname=this.Login_TB.Text.Trim().ToString();
    loginrole=this.LoginRole_Comb.Text.Trim().ToString();
    this.Hide();
    }
    这是我在用户窗体的代码,我把它写在构造函数里面了
    public UserForm()//构造函数
    {
        //
        // Windows 窗体设计器支持所必需的
        //
        InitializeComponent();
         LoginForm lf=new LoginForm();
        string aa=lf.loginname;
        this.label1.Text="'"+aa+"'";
        //
        // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       //
    }还是不行啊
      

  4.   

    LoginForm lf=new LoginForm();
    一个新的对象,属性值为空了
      

  5.   

    不new的话就提示使用了没赋值的变量
      

  6.   

    UserForm中也定义两个同样的属性,
     
    在loginform中
    {
    MessageBox.Show("登录成功!!");
    UserForm uf=new UserForm();
    uf.Show();
    加入对这两个属性的赋值就OK了
    uf.loginname = this.Login_TB.Text.Trim().ToString();
    uf.loginrole = this.LoginRole_Comb.Text.Trim().ToString();
    loginname=this.Login_TB.Text.Trim().ToString();
    loginrole=this.LoginRole_Comb.Text.Trim().ToString();
    this.Hide();
    }
      

  7.   

    登陆窗体:
    public static string loginname;
    public static string loginrole;
    当用户点击登陆时
    loginname=this.Login_TB.Text.Trim().ToString();
    loginrole=this.LoginRole_Comb.Text.Trim().ToString();
    用户窗体:
    this.label1.Text= 登陆窗体名.loginname;
    this.label2.Text= 登陆窗体名.lloginrole;
      

  8.   

    直接调用还是通过参数传递?to 幸福小星
    这段代码有什么用?
    loginname=this.Login_TB.Text.Trim().ToString();
    loginrole=this.LoginRole_Comb.Text.Trim().ToString();
    不是在前面复直了么?
    加入对这两个属性的赋值就OK了
    uf.loginname = this.Login_TB.Text.Trim().ToString();
    uf.loginrole = this.LoginRole_Comb.Text.Trim().ToString();
      

  9.   

    无名小卒你好,
    关键是在用户窗体里写在哪个位置好:
    this.label1.Text= 登陆窗体名.loginname;
    this.label2.Text= 登陆窗体名.lloginrole;
    this好象在方法外面写不行,我想在一调用用户窗体时就显示这个
    而FORM窗体里不像WEB窗体有自动载入的,所以说我不知道写哪里
      

  10.   

    很多解决办法啊,
    1.可以在UserForm定义两个变量,在窗体show之前赋值。
    2.还可以构造UserForm:
    public UserForm(string user,string role)//构造函数
    {
        //
        // Windows 窗体设计器支持所必需的
        //
        InitializeComponent();
        //
        // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       //
    }
    在UserForm定义窗体级变量string user,role;
    然后在LoginForm中调用UserForm时写:
    Form ff =new UserForm(this.Login_TB.Text.Trim().ToString(),this.LoginRole_Comb.Text.Trim().ToString());
    ff.Show();
    3.如JasonHeung(拥有一切不过就这样笑着哭) 所说
      

  11.   

    就是在UserForm写两个属性
    private string loginname = "";
    public string chuanzhiName
    {
    get{ return loginname; }
    set{ loginname = value;}
    }private string loginrole = "";
    public string chuanzhiRole
    {
    get{ return loginrole; }
    set{ loginrole = value;}
    }然后登录成功后在你的LoginForm中对这两个属性赋值UserForm userForm = new UserForm();
    userForm.chuanzhiName = 你的用户名;
    userForm.chuanzhiRole = 你的权限;
    userForm.Show();
    这样就OK了
      

  12.   

    接上,如果你要想在一调用用户窗体时就显示那两个属性,可以在UserForm的From_Load事件中加入些代码,比如你想让UserForm的标题就显示你可以这样写this.Text = chuanzhiName  + " " + chuanzhiRole;切记这个是写在UserForm中,而不是LoginForm中
      

  13.   

    其实传值方法很多,你还可以在构造函数中就直接传值private string loginrole = "";
    private string loginname = "";public UserForm(string loginname, string loginrole)
    {
        this.loginrole = loginrole;
        this.loginname = loginname;
    }这样你在LoginForm中就直接可以用构造函数了UserForm userform = new UserForm(你的用户名,你的权限);
      

  14.   

    UserForm的From_Load事件?
    windows里窗体里有这个事件From_Load么?
    在哪里?提示下
      

  15.   

    双击窗体上任一位置,跳转的代码页面时,出现的那个事件就是FormLoad事件
      

  16.   

    或者选中窗体 , 在属性那里,点上面那个闪电, 出来的事件列表中,找Load ,双击!
      

  17.   

    兄弟,我真想加你QQ,好好教你,我们公司不让上QQ、MSN,没有办法,只有[email protected]我Mail 一直开,上班时间自动收信,跟聊天软件也差不多了你给我发MAIL吧
      

  18.   

    好的,我的邮件是[email protected]
    我们公司也不让开任何聊天软件,我还刚毕业,还没打稳根.所以还是很听话的.不开就不开
    呵呵,
    我记下你的MAIL了
      

  19.   

    你们让用MAIL吗, 我用FOXMAIL设成2分钟自动收一回,跟聊天也差不多,呵呵上有政策,下有对策
      

  20.   

    结帖了啊 呵呵,我就用这个聊啊,我们老板说可以聊csdn啊,呵呵