大家好,我现在想在结构中放几个变量,首先在窗口中传几个初始值给结构中的变量,然后在另外的窗口调用结构变量值(初始值).
我的具体做法是SimpleStruct.cs
using System;
namespace ApolloI
{
public struct SimpleStruct
{
public string derparment_id;
public string derparment_name;
public string strlogin_name;
public string strpassword;
public string role_id;
public string role_name ;
public DateTime  systemtime;
public string  loginsystemtime;  
}
}
在窗口1中给结构中变量负值,在窗口2中申明
public  SimpleStruct sysStruct =new SimpleStruct();
Text1="登陆角色名称:"+sysStruct.role_name;
Text2="登陆帐号:"+sysStruct.strlogin_name;
Text3="登陆时间:"+sysStruct.loginsystemtime;
调试 sysStruct.role_name 为null,
sysStruct.strlogin_name为空,
sysStruct.loginsystemtime 为空,
我该怎样得到我负的值,各位大哥帮帮我

解决方案 »

  1.   

    public  SimpleStruct sysStruct =new SimpleStruct();
    方法之一可以把结构变量作为窗口1的public成员,这样窗口2可以通过窗口1访问这个成员了
      

  2.   

    oceanh很感谢你的回负,可是我上面早已用了你说的方法了,我在窗口2用public  SimpleStruct sysStruct =new SimpleStruct();,才能得到结构成员,public  SimpleStruct sysStruct =new SimpleStruct();
    Text1="登陆角色名称:"+sysStruct.role_name;
    Text2="登陆帐号:"+sysStruct.strlogin_name;
    Text3="登陆时间:"+sysStruct.loginsystemtime;
    调试 sysStruct.role_name 为null,
    sysStruct.strlogin_name为空,
    sysStruct.loginsystemtime 为空,
    ????????????????
      

  3.   

    为空和Null就对了,你建立了新的struct实例,自然是这样了。你没有得到已经赋值的Struct实例。
      

  4.   

    窗口1的赋值代码如下,先 申明
    sysStruct.loginsystemtime=DateTime.Now.Date.ToLongDateString()+DateTime.Now.ToLongTimeString();
           sysStruct.role_name =RoleComboBox.Text.ToString();
        sysStruct.role_id=RoleComboBox.SelectedValue.ToString(); sysStruct.strlogin_name=straccountid;
    sysStruct.strpassword= strpassword;
        yes4pierce(pierce) 请问一下  怎样得到已经赋值的Struct实例?
      

  5.   

    sysStruct
    这个在哪里定义的?
      

  6.   

    方法之二:使用static声明变量就行
      

  7.   

    结构定义
    public struct sTest
    {
    public string name;
    public int age;
    public double points;
    }FORM1
    public static sTest structTest;
    private void Form1_Load(object sender, System.EventArgs e)
    {
    structTest.name = "Student Name";
    structTest.age = 20;
    structTest.points = 100;
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
    try
    {
    Form2 fm2 = new Form2();
    fm2.ShowDialog();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }//FORM2
    private void Form2_Load(object sender, System.EventArgs e)
    {
    MessageBox.Show(Form1.structTest.name + "\r\n" +
                Form1.structTest.age.ToString() + "\r\n" +
                Form1.structTest.points.ToString());
    }