C#窗体中怎么用SetValue
在窗体应用程序中,用CSPoing定义了x,y,又定义了SetValue(inta,intb),x=a,y=b.那么怎么在textbox中显示x,y...
在窗体应用程序中,用CSPoing定义了x,y,又定义了SetValue(int a,int b), x=a,y=b. 那么怎么在textbox中显示x,y
展开
3个回答
展开全部
实现给窗体控件的Text属性赋值,比如说:TextBox,Combox等。有赋值,当然也有取值操作。从窗体的控件中取值,然后存入变量或者实体属性当中,传入到数据访问层进行添加,更新等操作也是我们经常使用的
该方法的作用是,遍历传入窗体中的控件,并且获取其值赋给实体类的相应属性。
/// <summary>
/// 从窗体控件取值,填充到学生实体类中
/// </summary>
/// <param name="enStudent">学生实体
public static void FillStuEntityByForm(StuEntity enStudent, Form thisfrm)
{
//遍历窗体上的控件
foreach (Control ctrl in thisfrm.Controls)
{
//控件是否继承了接口
if (ctrl is Interface1)
{
//是否属于文本框
if (ctrl is TextBoxEx)
{
//给实体属性赋值
SetStuValue(enStudent, ((TextBoxEx)ctrl).DataField, ctrl.Text);
}//如果属于下拉框
else if (ctrl is ComboxEx)
{
SetStuValue(enStudent, ((ComboxEx)ctrl).DataField, ((ComboxEx)ctrl).Text);
}
}
}
}
利用反射给实体每个属性赋值:
/// <summary>
/// 给实体相应的属性赋值
/// </summary>
/// <param name="enStudent">学生实体类
/// <param name="DataFiled">匹配字符串
/// <param name="Value">窗体控件的值
public static void SetStuValue(StuEntity enStudent, string DataFiled, string Value)
{
PropertyInfo field = enStudent.GetType().GetProperty(DataFiled);
field.SetValue(enStudent, Value, null);
}
将返回实体的属性取出,拼成一个字符串。
/// <summary>
/// 将实体的属性组合成字符串返回
/// </summary>
/// <param name="enStudent">
/// <returns></returns>
public static string GetStr(StuEntity enStudent)
{
PropertyInfo[] fields = enStudent.GetType().GetProperties();
StringBuilder sb = new StringBuilder();
foreach (PropertyInfo pi in fields)
{
sb.Append(pi.Name).Append(":").Append(pi.GetValue(enStudent, null)).Append("\r\n");
}
return sb.ToString();
}
客户端调用代码:
private void btnGetValue_Click(object sender, EventArgs e)
{
StuEntity enStudent = new StuEntity();
//调用填充实体属性的函数
FrmHelper.FillStuEntityByForm(enStudent, this);
//将实体的属性显示出来
string str = FrmHelper.GetStr(enStudent);
MessageBox.Show(str);
}
该方法的作用是,遍历传入窗体中的控件,并且获取其值赋给实体类的相应属性。
/// <summary>
/// 从窗体控件取值,填充到学生实体类中
/// </summary>
/// <param name="enStudent">学生实体
public static void FillStuEntityByForm(StuEntity enStudent, Form thisfrm)
{
//遍历窗体上的控件
foreach (Control ctrl in thisfrm.Controls)
{
//控件是否继承了接口
if (ctrl is Interface1)
{
//是否属于文本框
if (ctrl is TextBoxEx)
{
//给实体属性赋值
SetStuValue(enStudent, ((TextBoxEx)ctrl).DataField, ctrl.Text);
}//如果属于下拉框
else if (ctrl is ComboxEx)
{
SetStuValue(enStudent, ((ComboxEx)ctrl).DataField, ((ComboxEx)ctrl).Text);
}
}
}
}
利用反射给实体每个属性赋值:
/// <summary>
/// 给实体相应的属性赋值
/// </summary>
/// <param name="enStudent">学生实体类
/// <param name="DataFiled">匹配字符串
/// <param name="Value">窗体控件的值
public static void SetStuValue(StuEntity enStudent, string DataFiled, string Value)
{
PropertyInfo field = enStudent.GetType().GetProperty(DataFiled);
field.SetValue(enStudent, Value, null);
}
将返回实体的属性取出,拼成一个字符串。
/// <summary>
/// 将实体的属性组合成字符串返回
/// </summary>
/// <param name="enStudent">
/// <returns></returns>
public static string GetStr(StuEntity enStudent)
{
PropertyInfo[] fields = enStudent.GetType().GetProperties();
StringBuilder sb = new StringBuilder();
foreach (PropertyInfo pi in fields)
{
sb.Append(pi.Name).Append(":").Append(pi.GetValue(enStudent, null)).Append("\r\n");
}
return sb.ToString();
}
客户端调用代码:
private void btnGetValue_Click(object sender, EventArgs e)
{
StuEntity enStudent = new StuEntity();
//调用填充实体属性的函数
FrmHelper.FillStuEntityByForm(enStudent, this);
//将实体的属性显示出来
string str = FrmHelper.GetStr(enStudent);
MessageBox.Show(str);
}
展开全部
class CSPoint
{
private int x, y;
public void SetValue(int a, int b)
{
x = a;
y = b;
}
public override string ToString()
{
return "x=" + x.ToString() + ", y=" + y.ToString();
}
}
使用:
CSPoint p = new CSPoint();
p.SetValue(10, 20);
textBox1.Text = p.ToString();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
txetbox1=convent.tostring(x);
textbox2=b.tostring();
第二个不一定对
textbox2=b.tostring();
第二个不一定对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询