Winform中怎样在一个窗体中获得另一个窗体中的控件的值? 有两个窗体:一个是Form1.cs的主窗体,另一个是Login.cs的登录窗口,现在在login.cs窗口中有一个combobox控件(JSXZ),想在Form1.cs中获取它的值,应该怎样做? 请多指教/
Neil198 (劳驾借过!不借!) 等 级: #1楼 得分:2 回复于:2010-09-15 10:40:54
在login.cs里面定义一个属性访问器
C# code private string _cmbSelValue = "" ; public string CmbSelValue{ get { return combobox.SelectedText;} // or combobox.SelectedItem……………… }如果想要获得整个控件就直接把string 改成Combobox类型
精华推荐:本贴收集C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP),多多宜善。
tyang258 (tyang258) 等 级: #2楼 得分:2 回复于:2010-09-15 10:47:01
自己写一个帮助类,将值先给帮助类成员,在到需要的地方调用
精华推荐:SQLServer2005 String类的移植尝试
fywindmoon (猎色之狼) 等 级: #3楼 得分:2 回复于:2010-09-15 10:48:29
在login窗体中将comboBox声明改为public试试。或者再绕点,在login里面public一个变量,将SelectedItem的值赋给它。楼上的比较高级,一会俺试试。
guhonglangzi (孤鸿浪子) 等 级: #4楼 得分:0 回复于:2010-09-15 10:49:25
“帮助类”,怎样写啊。。。
精华推荐:【散分】公布一些常用的WebServices,希望对大家的应用有帮助~
HolyPlace (小鲁) 等 级: #5楼 得分:2 回复于:2010-09-15 10:52:39
写一个公共属性类,Login.cs中combobox的有他对应的属性值,只要combobox值发生改变都会改变属性值,在Form1中直接取公共属性类中对应的combobox值
精华推荐:Share Some Methods about Linq to Entry
Fibona (Fibona) 等 级: #6楼 得分:2 回复于:2010-09-15 10:55:03
第一种,在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获取值
qiuxin425 (秋鑫) 等 级: #7楼 得分:2 回复于:2010-09-15 10:55:26
引用 1 楼 neil198 的回复: 在login.cs里面定义一个属性访问器 C# code private string _cmbSelValue = ""; public string CmbSelValue { get{return combobox.SelectedText;}//or combobox.SelectedItem……………… } 如果想要获得整个控件就直接把string 改……+1
mervyn807 (梦幻舞天姬) 等 级: #8楼 得分:2 回复于:2010-09-15 10:56:34
我学C#的时候是直接定义一个public的全局量 然后赋值 这样哪个窗体都能通过这个量来得到值 哈 比较笨的方法
herott632482577 (herott632482577) 等 级: #9楼 得分:2 回复于:2010-09-15 11:08:08
设置个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;
guhonglangzi (孤鸿浪子) 等 级: #10楼 得分:0 回复于:2010-09-15 11:37:17
在下整了个公共类,如下: namespace tsleyyg.App_Help { class Tfvalue { public static string val = string.Empty; } }
lishenghu365 (飞扬跋扈) 等 级: #11楼 得分:4 回复于:2010-09-15 16:03:26
我觉得你问的这个问题是关于两个窗体间传值的问题,基本有三中方式. 不过你这种情况,最好使用类似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");