您的位置:首页 > 其它

Winform中怎样在一个窗体中获得另一个窗体中的控件的值?

2012-07-03 22:12 330 查看
Winform中怎样在一个窗体中获得另一个窗体中的控件的值?

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

请多指教/
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

回复次数:11




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类型


对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

精华推荐:本贴收集C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP),多多宜善。





tyang258

(tyang258)

等 级:


#2楼 得分:2回复于:2010-09-15 10:47:01

自己写一个帮助类,将值先给帮助类成员,在到需要的地方调用
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

精华推荐:SQLServer2005 String类的移植尝试





fywindmoon

(猎色之狼)

等 级:


#3楼 得分:2回复于:2010-09-15 10:48:29

在login窗体中将comboBox声明改为public试试。或者再绕点,在login里面public一个变量,将SelectedItem的值赋给它。楼上的比较高级,一会俺试试。
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

精华推荐:.net老版主的面试,分享共勉





guhonglangzi

(孤鸿浪子)

等 级:


#4楼 得分:0回复于:2010-09-15 10:49:25

“帮助类”,怎样写啊。。。
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

精华推荐:【散分】公布一些常用的WebServices,希望对大家的应用有帮助~





HolyPlace

(小鲁)

等 级:


#5楼 得分:2回复于:2010-09-15 10:52:39

写一个公共属性类,Login.cs中combobox的有他对应的属性值,只要combobox值发生改变都会改变属性值,在Form1中直接取公共属性类中对应的combobox值
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP

精华推荐: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获取值

对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP





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
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP





mervyn807

(梦幻舞天姬)

等 级:


#8楼 得分:2回复于:2010-09-15 10:56:34

我学C#的时候是直接定义一个public的全局量

然后赋值

这样哪个窗体都能通过这个量来得到值



比较笨的方法
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP





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;

对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP





guhonglangzi

(孤鸿浪子)

等 级:


#10楼 得分:0回复于:2010-09-15 11:37:17

在下整了个公共类,如下:namespace tsleyyg.App_Help

{

class Tfvalue

{

public static string val = string.Empty;

}

}
对我有用[0]
丢个板砖[0]
引用
举报
管理
TOP





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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐