如何在winforms应用程序启动时运行两个表单?

问题描述 投票:0回答:2

让我们考虑这个场景:一个新创建的 Windows 窗体应用程序,其中除了原始 Form1 之外我还创建了 Form2。

第一个问题: 我希望这两种形式都在启动时显示,所以我基本上想添加 Application.Run(new Form2());在 main 中,在 Form1 的类似命令之后,但因为我读到我不能使用多个线程来运行这两个表单,我该怎么做?

第二个问题: 如何从外部类甚至主类访问表单方法,因为即使我创建一个表单实例,我似乎也无法直接访问它们。

第三个问题: 我需要在表单中显示消息缓冲区,通常我会使用一个简单的文本框,但问题是我需要添加诸如已读标记之类的内容到所有单独的消息。关于如何做到这一点有任何线索吗?

c# .net winforms
2个回答
4
投票

1:查看 ApplicationContext 类

2:方法需要公开,但这里要小心,因为您将开始遇到紧耦合的问题。 对于简单的实现,您需要传递对调用对象的引用(考虑研究观察者模式)。

3:查看 DataGridView


0
投票

由于 WinForm 是线程安全的,除非您以 async/await 或 Thread.Start/Run 启动,所以您可以简单地在 Program.cs 中创建一个对象并解析为两个窗口的参数。然后他们可以通过这个对象交换信息。您还可以在两种表单中创建事件,并解析表单的回调给我,它们互相调用方法。

© www.soinside.com 2019 - 2024. All rights reserved.