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

因为textbox有点多,全写出来好乱
所以想在button的单击事件下,调用另一个类中的方法,来获取这些值
但是在另一个类里要写控件名称的时候没有,写出来也说不对
我加了个Form1 form1 = new Form1(); 然后写form1.tex 后面也没有,该怎么做啊

楼主你好:

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

希望对你有帮助,望采纳,非常感谢,谢谢
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-10
为什么要在另一个类中获取控件的值呢?

你在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;
...
}本回答被网友采纳
第2个回答  2013-08-06
看了你对楼上的追问,Form1哪里打不出来了?下面第4项不就是吗?补充提问的form1.tex,如果我没有猜错,你后面是想写TextBox?那你需要在设计器中,选中TextBox,把modifiers属性改成Public。追问

那个打出来的Form1是 系统定义的Form1类,而不是我实例化的那个form1

追答

class 直接包含的一级只能是声明,比如函数声明、属性声明,Form1 form1 = new Form1();是字段也就是成员变量声明。使用它必须在某个方法或者函数里面。

追问

在方法里是可以打出form1了,但是加form1. 下面只有方法、属性什么的,没有控件,也没有在Form1里定义的变量

追答

那你需要在设计器中,选中TextBox,把modifiers属性改成Public。凡是要访问的,都要改成public,默认是internal。

本回答被提问者采纳
第3个回答  2013-08-06
form1.TextName.Text;

TextName是你TextBox的Name属性值追问

form1都打不出来啊

追答

只能在方法或者事件内部调用变量!

追问

在方法里是可以打出form1了,但是加form1. 下面只有方法、属性什么的,没有控件啊,也没有在Form1里定义的变量

追答

把Form1里边的TextBox的Modifiers属性设置为Public