c#在窗体应用程序中访问“主”用户窗体上的方法

从VB过渡到c#的过程中,我有些困惑-我有一个从要点开始的UserForm:


static class Program

{

    [STAThread]

    static void Main()

    {

        Application.EnableVisualStyles();

        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new AwesomeForm());

    }

}

在此表单上,我有一个标签Label1,但是我不能从另一个类访问它(AwesomeForm.Label1在intellisense中不存在)-它不会在表单中找到Label1或实际上的任何公共方法;我尝试AwesomeForm使用公共访问器在上创建一个方法:


    public void UpdateMe(string TheMessage)

    {

        this.Label1.Text = TheMessage;

    }

在VB中,我只是使用表单的名称和public方法(AwesomeForm.UpdateMe("Hi!")


我认为这与Application.Run(new AwesomeForm());创建的实例有关AwesomeForm,我认为我可以通过public Form MyAwesomeForm = Application.OpenForms[0];给我MyAwesomeForm一个玩法来访问该实例,但是尽管这一行没有出错,但我仍然没有得到intellisense中的方法,当我尝试使用时不会编译Form.UpdateMe()


我尝试为它声明一个变量,public AwesomeForm MyAwesomeForm = Application.OpenForms[0];但这没有用...


我要去哪里错了?如何告诉其他地方的班级更改启动表格中的内容?


我可以将变量名放在行中的某个位置Application.Run(new AwesomeForm());吗,例如Application.Run(Wow new AwesomeForm()); 然后我可以获得AwesomeForm的第一个实例?


侃侃无极
浏览 150回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP