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

guhonglangzi 2010-09-15 10:27:17
Winform中怎样在一个窗体中获得另一个窗体中的控件的值?

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

请多指教/
...全文
1030 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
guhonglangzi 2010-09-15
  • 打赏
  • 举报
回复
在下整了个公共类,如下:namespace tsleyyg.App_Help
{
class Tfvalue
{
public static string val = string.Empty;
}
}
herott632482577 2010-09-15
  • 打赏
  • 举报
回复
设置个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;
缭绕飘渺 2010-09-15
  • 打赏
  • 举报
回复
我学C#的时候是直接定义一个public的全局量
然后赋值
这样哪个窗体都能通过这个量来得到值

比较笨的方法
qiuxin425 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 neil198 的回复:]
在login.cs里面定义一个属性访问器


C# code

private string _cmbSelValue = "";
public string CmbSelValue
{
get{return combobox.SelectedText;}//or combobox.SelectedItem………………
}

如果想要获得整个控件就直接把string 改……
[/Quote]

+1
Fibona 2010-09-15
  • 打赏
  • 举报
回复
第一种,在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获取值
HolyPlace 2010-09-15
  • 打赏
  • 举报
回复
写一个公共属性类,Login.cs中combobox的有他对应的属性值,只要combobox值发生改变都会改变属性值,在Form1中直接取公共属性类中对应的combobox值
guhonglangzi 2010-09-15
  • 打赏
  • 举报
回复
“帮助类”,怎样写啊。。。
Helsing 2010-09-15
  • 打赏
  • 举报
回复
在login窗体中将comboBox声明改为public试试。或者再绕点,在login里面public一个变量,将SelectedItem的值赋给它。楼上的比较高级,一会俺试试。
tyang258 2010-09-15
  • 打赏
  • 举报
回复
自己写一个帮助类,将值先给帮助类成员,在到需要的地方调用
Neil198 2010-09-15
  • 打赏
  • 举报
回复
在login.cs里面定义一个属性访问器


private string _cmbSelValue = "";
public string CmbSelValue
{
get{return combobox.SelectedText;}//or combobox.SelectedItem………………
}

如果想要获得整个控件就直接把string 改成Combobox类型
李先生2017 2010-09-15
  • 打赏
  • 举报
回复
我觉得你问的这个问题是关于两个窗体间传值的问题,基本有三中方式.
不过你这种情况,最好使用类似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");

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧