C# 怎么在另一个类中获取窗体内textbox控件的text属性值
因为textbox有点多,全写出来好乱所以想在button的单击事件下,调用另一个类中的方法,来获取这些值但是在另一个类里要写控件名称的时候没有,写出来也说不对我加了个F...
因为textbox有点多,全写出来好乱
所以想在button的单击事件下,调用另一个类中的方法,来获取这些值
但是在另一个类里要写控件名称的时候没有,写出来也说不对
我加了个Form1 form1 = new Form1(); 然后写form1.tex 后面也没有,该怎么做啊 展开
所以想在button的单击事件下,调用另一个类中的方法,来获取这些值
但是在另一个类里要写控件名称的时候没有,写出来也说不对
我加了个Form1 form1 = new Form1(); 然后写form1.tex 后面也没有,该怎么做啊 展开
4个回答
展开全部
楼主你好:
要解决你上面的问题,其实有个很简单的方法,你可以把你这一堆textbox都放到一个Panel中,
然后把这个Panel传入到你新写的那个类中,
我帮你写了一个方法,已经可以实现你要的东西,方法如下:
首先在你新写的类中引用:using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FormTest.BusinessLayyer
{
public class BusinessCommon
{
/// <summary>
/// 获取页面传入容器中所有TextBox值及名字
/// </summary>
/// <param name="panInput"></param>
/// <returns></returns>
public static Dictionary<string, string> GetInputValue(Panel panInput)
{
Dictionary<string, string> dicReturn = new Dictionary<string, string>();
if (panInput != null)
{
foreach (Control col in panInput.Controls)
{
if (col.GetType().Name == "TextBox")
{
dicReturn.Add(col.Name, col.Text);
}
}
}
return dicReturn;
}
}
}
}
页面上引用的地放如下:
namespace FormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> strInput = BusinessCommon.GetInputValue(panel1);
}
}
}
panel1是你窗体Panel的名字,
希望对你有帮助,望采纳,非常感谢,谢谢
要解决你上面的问题,其实有个很简单的方法,你可以把你这一堆textbox都放到一个Panel中,
然后把这个Panel传入到你新写的那个类中,
我帮你写了一个方法,已经可以实现你要的东西,方法如下:
首先在你新写的类中引用:using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace FormTest.BusinessLayyer
{
public class BusinessCommon
{
/// <summary>
/// 获取页面传入容器中所有TextBox值及名字
/// </summary>
/// <param name="panInput"></param>
/// <returns></returns>
public static Dictionary<string, string> GetInputValue(Panel panInput)
{
Dictionary<string, string> dicReturn = new Dictionary<string, string>();
if (panInput != null)
{
foreach (Control col in panInput.Controls)
{
if (col.GetType().Name == "TextBox")
{
dicReturn.Add(col.Name, col.Text);
}
}
}
return dicReturn;
}
}
}
}
页面上引用的地放如下:
namespace FormTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dictionary<string, string> strInput = BusinessCommon.GetInputValue(panel1);
}
}
}
panel1是你窗体Panel的名字,
希望对你有帮助,望采纳,非常感谢,谢谢
展开全部
为什么要在另一个类中获取控件的值呢?
你在button的单击事件中调用另一个类中的方法,有很多种方便的方法把textbox的值传过去,比如,可以在button的单击事件中这样写:
OtherClass obj =new OtherClass();
obj.MethonName(this.textbox1.text);
public class OtherClass
{
public void MethonName(string str)
{
...
}
}
如果你一定要操作textbox控件,可以把MethonName方法的参数类型换成TextBox,这样:
public void MethonName(TextBox ctr)
{
string str=ctr.text;
...
}
你在button的单击事件中调用另一个类中的方法,有很多种方便的方法把textbox的值传过去,比如,可以在button的单击事件中这样写:
OtherClass obj =new OtherClass();
obj.MethonName(this.textbox1.text);
public class OtherClass
{
public void MethonName(string str)
{
...
}
}
如果你一定要操作textbox控件,可以把MethonName方法的参数类型换成TextBox,这样:
public void MethonName(TextBox ctr)
{
string str=ctr.text;
...
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看了你对楼上的追问,Form1哪里打不出来了?下面第4项不就是吗?补充提问的form1.tex,如果我没有猜错,你后面是想写TextBox?那你需要在设计器中,选中TextBox,把modifiers属性改成Public。
更多追问追答
追问
那个打出来的Form1是 系统定义的Form1类,而不是我实例化的那个form1
追答
class 直接包含的一级只能是声明,比如函数声明、属性声明,Form1 form1 = new Form1();是字段也就是成员变量声明。使用它必须在某个方法或者函数里面。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询