我有一个表单(form1),它有一个文本字段(textBox1) 我有一个类,其方法是“public static string getValue()”
如何在方法getValue()??
中读取textBox1的值这是我的代码
namespace MyProgram
{
public partial class Form1: Form
{
---------------------------------
---------------------------------
---------------------------------
}
}
另一个班级
namespace MyProgram
{
class values
{
public static string getValues()
{
string v;
v = ------get value from textBox1 in Form1
return v;
}
}
}
whol软件是在这个结构中构建的,所以我希望C#中有一些标准方法可以在方法getValue()中获取这些值
答案 0 :(得分:2)
你做不到。该属性位于类的实例中,静态方法没有指向它的指针。被设计破坏了。
答案 1 :(得分:1)
您必须实例化Form1的新对象并获取值。或者在form1中添加一个委托并从getValue中调用它,这样委托的返回值应该是文本框值。
答案 2 :(得分:1)
您可以在静态方法中实例化,显示和处理表单。一个例子:
public static string GetValues()
{
string value = null;
using (var form = new Form1())
{
DialogResult result = form.ShowDialog();
if (result == DialogResult.OK)
{
value = form.textBox1.Text;
}
}
return value;
}
using块负责释放为表单分配的资源。 ShowDialog将表单显示为模式对话框。
虽然这适用于简单的对话框,但它可能不是你想要在每种情况下做的。该方法将阻止当前线程,直到用户关闭表单。查看其他应用程序和示例代码。正如@Dan Abramov所写,重新考虑你的设计。
答案 3 :(得分:0)
foreach(Control c in Form1.Controls) {
if(c.getType() == TextBox) {
TextBox tb = (TextBox)c;
string value = tb.Text;
}
}
但是你为什么不从表格中读取价值呢?
Textbox1.Text
考虑KISS原则!