【问题标题】:WinForms - why does C# form run the SQL in it every time I open it in Visual Studio?WinForms - 为什么每次在 Visual Studio 中打开 C# 表单时都会在其中运行 SQL?
【发布时间】:2016-10-02 02:16:23
【问题描述】:

在这个 Winform 应用程序中,我有一些表单加载 SQL 方法。每次加载时,它们都会在运行时按预期执行该代码。

但是为什么我每次在 Visual Studio 中打开它们时它们都会执行 load 方法?

我正在使用 Visual Studio 2015 CE

【问题讨论】:

    标签: c# visual-studio-2015


    【解决方案1】:

    因为 VS 设计器执行表单的构造函数以在设计时显示它。
    为了防止它,您可以使用此代码检查DesignMode 属性:

    if (!DesignMode)
    {
        //... run sql
    }
    

    LicenseManager 更复杂:

    if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
    {
        //... run sql
    }
    

    【讨论】:

    • 喂!你确定吗?我一直认为设计器更聪明,会实例化表单的基类(通常是 Form),然后专门解析 InitializeComponent() 中的代码,以避免在设计器中运行实际的表单代码。这在最近版本的 VS 中是否发生了变化?查看我的这个问题的答案:stackoverflow.com/questions/872536
    • 对我不起作用。在设计视图中打开时仍然运行 sql 代码
    • @AntonyLopez 又添加了一个案例
    • 对我绒绒不起作用。当我在设计视图中打开表单时仍然运行 sql 代码。我在所有的sql代码上都实现了。
    • SQL 代码位于在窗体上运行的 UserControll 中。当我在设计视图中打开该表单时,所有的地狱都失败了。很抱歉反馈迟了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2023-03-27
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多