Winform中怎样在一个窗体中获得另一个窗体中的控件的值?有两个窗体:一个是Form1.cs的主窗体,另一个是Login.cs的登录窗口,现在在login.cs窗口中有一个combobox控件(JSXZ),想在Form1.cs中获取它的值,应该怎样做?请多指教/

解决方案 »

  1.   

    在login.cs里面定义一个属性访问器
    private string _cmbSelValue = "";
    public string CmbSelValue
    {
       get{return combobox.SelectedText;}//or combobox.SelectedItem………………
    }如果想要获得整个控件就直接把string 改成Combobox类型
      

  2.   

    在login窗体中将comboBox声明改为public试试。或者再绕点,在login里面public一个变量,将SelectedItem的值赋给它。楼上的比较高级,一会俺试试。
      

  3.   

    写一个公共属性类,Login.cs中combobox的有他对应的属性值,只要combobox值发生改变都会改变属性值,在Form1中直接取公共属性类中对应的combobox值
      

  4.   

    第一种,在Loginfrm中写一个公共属性如
    public class Loginfrm:form
    {
      private string _cmbvalue=string.Empty;
      
      public CmbValue
      {
          set{_cmbvalue=value;}
          get{return _cmbvalue;}
      }}在frm1中,
    Loginfrm frm=new Loginfrm();
    //显示frm,
    string value=frm.CmbValue;第二种,放一个静态属性,放到应用程序主类,或者其它公共类中
    namespace aa.App
    {
      static class Program
        {
            public static string LoginFrmCmbValue= string.Empty;
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
    }//在LoginFrm中,更改时,更改
    Program.LoginFrmCmbValue="值";在主窗体中,直接用Program.LoginFrmCmbValue获取值
      

  5.   

    我学C#的时候是直接定义一个public的全局量
    然后赋值
    这样哪个窗体都能通过这个量来得到值

    比较笨的方法
      

  6.   

    设置个PUBLIC全局变量 A窗体
      int index1 = 0;//dataGridView1中ID列的索引
     string Id = dataGridView2[index1, dataGridView2.SelectedCells[0].RowIndex].Value.ToString();
    B b=new B(id)
    b.show();B窗体
    PUBLIC INT ID;
      

  7.   

    在下整了个公共类,如下:namespace tsleyyg.App_Help
    {
        class Tfvalue
        {
            public static string val = string.Empty;
        }
    }
      

  8.   

    我觉得你问的这个问题是关于两个窗体间传值的问题,基本有三中方式.
    不过你这种情况,最好使用类似session 的方法首先,在登陆窗体中将用户名和密码保存到一个对象中 userInfo,包括用户名和密码public class UserInfo

      public string _userName;
      public string _userPassword;
      public UserInfo(string userName,string userPassword)
      {
         _userName=userName;
         _userPassword = userPassword;
      }
    }
    UserInfo userInfo = new UserInfo("张三","123456");
    AppDomain.CurrentDomain.SetData("UserInfo",userInfo)然后,在该进程中(单程序域进程),所有窗体或其他类对象中都可以这样获得该对象UserInfo temp = (UserInfo)AppDomain.CurrentDomain.GetData("UserInfo");