c# get set 窗体传值

我有一个公共类:publicclassBaseInfo{}一个登录窗体:publicpartialclassFormLogin:Form{}一个主窗体:publicpar... 我有一个公共类: public class BaseInfo { }
一个登录窗体: public partial class FormLogin : Form { }
一个主窗体: public partial class FormMain : Form { }

现在我的登录窗体(FormLogin)里有一个DataSet ds是登录用户的基本信息,我想通过BaseInfo类中的 get set 将值传到主窗体(FormMain)中
简单的说就是将一个值窗体的数据通过get set传到别一个窗体中,值类型为Dataset.

~吼吼~ 抹泪求代码
根据答案的满意程度我会再加分10~50
展开
 我来答
司馬尘恋
2011-04-21 · TA获得超过1101个赞
知道小有建树答主
回答量:427
采纳率:0%
帮助的人:609万
展开全部
首先,建议你直接使用构造函数传值,即增加一个构造方法,比如:
long id;
public FormMain(long id)
: this()
{
this.id= id;
}
在打开主窗体时传入需要的参数

然后,如果用类传值,BaseInfo或其中的属性应设置为静态(static)
public string UserName { get; set; }
public string PassWord { get; set; }
new 主窗体之前,BaseInfo.UserName = "XXXX";BaseInfo.PassWord = "xxxx"
主窗体Load事件中使用BaseInfo.UserName 直接获取数据.
不设置为静态的话,需要初始化BaseInfo类,并将BaseInfo传给主窗体再取值.

其他方法:直接在主窗体中创建公开的静态变量,登陆窗体New主窗体后直接给变量赋值.
主窗体中:public static UserName;
登陆窗体中:FormMain f = new FormMain(); f.UserName = "xxxx";
百度网友afa88360d
2011-04-21 · TA获得超过143个赞
知道答主
回答量:54
采纳率:0%
帮助的人:78.1万
展开全部
看了你的需求,主要是为了传值到FormMain中,
可以用属性和重载窗体的构造函数传参数的方式传:
第一种方案,用属性传,在需要得到值的窗体类中,设置一个公开属性可获得。
以下是示例代码:
//FormMain 内需加属性:
DataSet _ds;
public DataSet DS
{
get{return _ds;}
set{_ds=value;}
}

//FormLogin内代码:
FormMain mainForm=new FormMain();
mainForm.DS= ds;
mainForm.Open();
这样FormMain就拥有FormLogin中ds的值了。

第二种方案:重载窗体的构造函数,传递参数的方式。
以下是示例代码:

//FormMain 内需加代码:
DataSet _ds;
public FormMain(DataSet ds)
{
_ds = ds;
}

//FormLogin内代码:
FormMain mainForm=new FormMain(ds);
mainForm.Open();
这样FormMain就拥有FormLogin中ds的值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
meimeide960
2015-12-08 · TA获得超过121个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:60.9万
展开全部

get和set是属性特有的两个方法。属性是对字段的封装,是为了程序数据的安全性考虑的。总的来说,字段有两种操作权限,就是获取和修改,就分别对应的是get和set方法了,可以通过制定get和set方法来限定字段的访问权限。

 

举例说明:

private int _age;//年龄 字段
public int? Age
{
    get 
   {
      return _age;  
   }
   set
   {
       if(_age<0 || _age>150)  _age=null;
 
       else _age=value; 
    }     
 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leon382
2011-04-21 · TA获得超过1064个赞
知道小有建树答主
回答量:1744
采纳率:0%
帮助的人:1012万
展开全部
Form1
--------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Form2ToForm1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.GetForm(this);
form.Show();
}
}
}
--------------------------------------
Form2
-----------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Form2ToForm1
{
public partial class Form2 : Form
{
public string str = null;
public Form1 form = null;
public Form2()
{
InitializeComponent();
}
public void GetForm(Form1 theform)
{
form = theform;
}
private void button1_Click(object sender, EventArgs e)
{
form.textBox1.Text = textBox1.Text;/*此次需要将Form1设计窗体中的textbox1的属性从Private 改为public就可以再Form2中调用,否则会出现错误*/
this.Close();
}
}
}
----------------------------------
说明:运行后,点击Form1的button1 调出Form2,点击Form2的Button1,关闭Form2,同时form2上的Textbox中的值复制到Form1中的Textbox1中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牧镶露9L
2011-04-21 · TA获得超过172个赞
知道答主
回答量:133
采纳率:0%
帮助的人:0
展开全部
不知道object可以传不?用java都是生成get set什么都能传 不了解net
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式