C# 怎么在另一个类中获取窗体内textbox控件的text属性值

因为textbox有点多,全写出来好乱所以想在button的单击事件下,调用另一个类中的方法,来获取这些值但是在另一个类里要写控件名称的时候没有,写出来也说不对我加了个F... 因为textbox有点多,全写出来好乱
所以想在button的单击事件下,调用另一个类中的方法,来获取这些值
但是在另一个类里要写控件名称的时候没有,写出来也说不对
我加了个Form1 form1 = new Form1(); 然后写form1.tex 后面也没有,该怎么做啊
展开
 我来答
Ps脸粉粉
2013-08-06 · TA获得超过1563个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:115万
展开全部
楼主你好:

要解决你上面的问题,其实有个很简单的方法,你可以把你这一堆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的名字,

希望对你有帮助,望采纳,非常感谢,谢谢
mydocument2020
推荐于2018-04-10 · TA获得超过202个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:140万
展开全部
为什么要在另一个类中获取控件的值呢?

你在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;
...
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2013-08-06 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7838万
展开全部
看了你对楼上的追问,Form1哪里打不出来了?下面第4项不就是吗?补充提问的form1.tex,如果我没有猜错,你后面是想写TextBox?那你需要在设计器中,选中TextBox,把modifiers属性改成Public。
更多追问追答
追问
那个打出来的Form1是 系统定义的Form1类,而不是我实例化的那个form1
追答
class 直接包含的一级只能是声明,比如函数声明、属性声明,Form1 form1 = new Form1();是字段也就是成员变量声明。使用它必须在某个方法或者函数里面。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
序米泪M
2013-08-06 · 超过23用户采纳过TA的回答
知道答主
回答量:220
采纳率:0%
帮助的人:89.3万
展开全部
form1.TextName.Text;

TextName是你TextBox的Name属性值
更多追问追答
追问

form1都打不出来啊

追答
只能在方法或者事件内部调用变量!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式