
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 展开
一个登录窗体: public partial class FormLogin : Form { }
一个主窗体: public partial class FormMain : Form { }
现在我的登录窗体(FormLogin)里有一个DataSet ds是登录用户的基本信息,我想通过BaseInfo类中的 get set 将值传到主窗体(FormMain)中
简单的说就是将一个值窗体的数据通过get set传到别一个窗体中,值类型为Dataset.
~吼吼~ 抹泪求代码
根据答案的满意程度我会再加分10~50 展开
5个回答
展开全部
首先,建议你直接使用构造函数传值,即增加一个构造方法,比如:
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";
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";
展开全部
看了你的需求,主要是为了传值到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的值了。
可以用属性和重载窗体的构造函数传参数的方式传:
第一种方案,用属性传,在需要得到值的窗体类中,设置一个公开属性可获得。
以下是示例代码:
//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的值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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中。
--------------------------------------------
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中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道object可以传不?用java都是生成get set什么都能传 不了解net
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询