我有窗口形式在一个组合框和我有声明与像静态的方法private static DataTable ParseTable(HtmlNode table)
现在,我想使用组合框在该方法使用组合框属性,但我不能访问组合框的任何财产或组合框itself.If我做了组合框声明为静态的话,就可以在静态method.But访问静态方法combbox财产,因为我不想做组合框声明为静态任何其他方式进行访问。
Answer 1:
您可以通过组合框作为参数传递给你的方法。 为什么你需要有ParseTable
方法静态 ?
更新 :你不能访问类的非静态成员在静态环境。 所以,你唯一可以做的,如果你还需要有一个静态的方法是使用方法的参数莫名其妙通过你的组合框到那个方法。
Answer 2:
你可以通过“本”,以静态方法和访问你需要在“本”的任何成员进入组合框。
Answer 3:
你将不只是能够从一个静态函数访问实例成员。 以访问的一种方法是,你可以通过控制到函数作为参数。 考虑下面这个例子。
private void button1_Click(object sender, EventArgs e)
{
Form1.DoSomething(textBox1);
}
public static void DoSomething(TextBox textbox)
{
textbox.Text = DateTime.Now.ToString();
}
Answer 4:
没有必要在在静止ParseTable方法。 如果你想要的是功能与形式对控件进行交互此功能消除静电。
从阅读的评论,没有性能的提高,如果你只有一种形式。 如果您有多种形式调用此静态方法,然后ParseTable应该被移动到一个单独的静态类。
如果您使用此方法ParseTable装入十个或更多的组合框,那么我建议你使用安东尼Pegram和安德鲁Bezzub建议,并根据需要通过ComboBox控件。 我会避免通过这个(表格),因为它通常产生“丑”无法管理的代码。
文章来源: Accessing non-static combbox property in the static method