对象引用非静态的字段方法或属性“Form1.comboBox1.Text”是必需的,怎么解决

我参照的帖子:
【子窗体调用父窗体变量或方法】:

        将父窗体下的变量设置为全局静态变量。

        如字符串类型prj_path:

        public static string prj_path;

        子窗体调用父窗体(父窗体名:MainForm)的prj_path时,使用代码“MainForm.prj_path”即可。

        方法调用同理,将方法类型修改为public static即可。
主窗口中 public static string a;
子窗口中public static void Creatchart1()
{
string a = Form1.comboBox1.Text;
//省略
}
但仍然在 Form1.comboBox1.Text;处显示对象引用非静态的字段方法或属性“Form1.comboBox1.Text”是必需的


if (Owner is Form1 parent) {
    string a = parent.comboBox1.Text;
 } else {
    throw new Exception("父窗口类型错误");
}


你要使用父级的话方法就不该用static,因为静态初始化的时候不可能有父级,一个窗口类可能会有多个实例,属性也慎用static

静态方法中不能调用非静态字段或者属性的。你这样写是不行的。你可以把方法写成非静态的就行了