C#,以静态方法访问(获取或读取)textBox值?

时间:2011-08-12 04:46:44

标签: c# methods textbox static-methods

我有一个表单(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()中获取这些值

4 个答案:

答案 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原则!