【问题标题】:Find active winform in solution explorer在解决方案资源管理器中查找活动的 winform
【发布时间】:2016-09-07 20:34:26
【问题描述】:

我开始研究具有大量 Winform 的现有解决方案。有没有在应用程序运行时在 Visual Studio 解决方案资源管理器中快速查找设计时表单的方法?

请注意:调试/中断只会帮助我找到模式形式(对话框)。我也有兴趣寻找无模式的winforms。我不认为浏览设计时菜单和事件是一种快速的方法..

【问题讨论】:

  • design time form 是什么意思?
  • 我认为他的意思是现在在运行时处于活动状态的表单,如何在vs中的解决方案资源管理器中找到该表单
  • 调试器只能显示当前正在运行的代码。如果你做对了,那不是活动窗口中的任何代码。 UI 类的正常状态是耐心等待,直到有趣的事情发生。就像一个 Click 事件。所以不,这是不可能的。窗口标题栏中显示的文本是您找到匹配的 Form 类的最佳线索。

标签: c# winforms visual-studio


【解决方案1】:

您也可以在主窗体上创建一个调试菜单项并将其放入:

string test = string.Empty;
foreach (Form item in Application.OpenForms)
{
    test += item.GetType().ToString() + Environment.NewLine;
} 
MessageBox.Show(test);

这将为您提供一个 openforms 列表,就像 Markus G 建议的那样,但无需为此创建表单。

也看看这个:

https://msdn.microsoft.com/en-us/library/system.windows.forms.form.activeform(v=vs.110).aspx

它解释了如何识别活动表单,但像往常一样,微软通过两种方法使事情变得有点复杂,一种用于 mdi 表单,一种用于非 mdi 表单

【讨论】:

    【解决方案2】:

    我希望这是你想要的:

    使用 Application.OpenForms (click)

    您将获得属于您项目的所有打开表单的列表。 然后您可以在资源管理器中轻松找到表单。

    【讨论】:

    • 应用运行时如何使用?这是 OP 要求的。
    • 哦,那么他可以创建一个计时器(或事件),以另一种形式每秒更新一次,以查看哪些表格正在运行。我没有看到问题... @OP 请回答
    • 我宁愿根本不编写程序来找出活动表单,但这似乎是不可能的。我会稍等一下,看看是否有其他解决方案。
    猜你喜欢
    • 2014-02-04
    • 1970-01-01
    • 2015-02-14
    • 2014-08-16
    • 2020-11-26
    • 2011-02-04
    • 1970-01-01
    • 2014-02-09
    • 2018-06-07
    相关资源
    最近更新 更多