C#,在静态方法中访问(获取或读取)文本框值?
我有一个表单(form1),它有一个文本字段(textBox1) 我有一个类的方法是“publicstaticstringgetvalue()” 如何在getValue()方法中读取textBox1的值 这是我的密码C#,在静态方法中访问(获取或读取)文本框值?,c#,methods,textbox,static-methods,C#,Methods,Textbox,Static Methods,我有一个表单(form1),它有一个文本字段(textBox1) 我有一个类的方法是“publicstaticstringgetvalue()” 如何在getValue()方法中读取textBox1的值 这是我的密码 namespace MyProgram { public partial class Form1: Form { --------------------------------- ------------------------------
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;
}
}
}
整个软件都是在这种结构中构建的,所以我希望C语言中有一些标准的方法来获取getValue()方法中的这些值。您不能。属性位于类的实例中,静态方法没有指向它的指针。被设计破坏。你不能。属性位于类的实例中,静态方法没有指向它的指针。被设计破坏了
foreach(Control c in Form1.Controls) {
if(c.getType() == TextBox) {
TextBox tb = (TextBox)c;
string value = tb.Text;
}
}
但是为什么不直接从表单中读取值呢
Textbox1.Text
考虑一下接吻原则
但是为什么不直接从表单中读取值呢
Textbox1.Text
考虑一下接吻原则 您必须实例化Form1的新对象并获取值。或者在form1中添加一个委托并从getValue调用它,这样委托的返回值应该是文本框值。您必须实例化form1的新对象并获取该值。或者在form1中添加一个委托并从getValue调用它,这样委托的返回值应该是文本框值。您可以在静态方法中实例化、显示和处理表单。例如:
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所写,重新考虑您的设计。您可以在静态方法中实例化、显示和处理表单。例如:
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所写,重新考虑您的设计。那么它应该如何设计?除非他在静态方法中实例化、显示和处理表单。那么它应该如何设计?除非他在静态方法中实例化、显示和处理表单。但是请注意,他不能从getvalues方法中这样做。它在不同的班级里。还有另一个类中的文本框obj。但请注意,他不能从getvalues方法中执行此操作。它在不同的班级里。和其他类中的文本框obj。有例子吗?它将帮助我更好地学习和理解它!这个结构是我的错吗?如果你在getValue方法中实例化Form1,那么就会创建一个新的Form对象,并在memeory中创建新的TextBox obj。所以这并不能为你解决整个问题。所以另一种方法是在form1中定义委托,它显然是form1中的静态对象。然后在该委托中,当从getValues调用以获取TextBox值时,使其从form1返回一个值。寻找代表,你会得到答案。谢谢分配,我会试试看,我想我以前从来没有这样做过:-)有什么例子吗?它将帮助我更好地学习和理解它!这个结构是我的错吗?如果你在getValue方法中实例化Form1,那么就会创建一个新的Form对象,并在memeory中创建新的TextBox obj。所以这并不能为你解决整个问题。所以另一种方法是在form1中定义委托,它显然是form1中的静态对象。然后在该委托中,当从getValues调用以获取TextBox值时,使其从form1返回一个值。寻找代表,你会得到答案。谢谢分配,我会试试,我想我以前从来没有这样做过:-)