Application.SetCompatibleTextRenderingDefault(false);时运行时错误被设置

时间:2019-05-16 16:19:41

标签: c# office-interop

尝试从$d_id=$_REQUEST['id']; $s_id=$_REQUEST['sid']; $sql1 = "SELECT t1.s_id,t1.p_id,t1.store_name,t1.store_address,t1.store_city,t1.store_lat,t1.store_lng,t1.store_cat,t1.store_status,t2.deal_name,t2.deal_desc,t2.deal_end,t2.deal_type,t2.deal_m,t2.deal_n,t2.deal_op,t2.deal_dp,t2.deal_pf,t2.deal_pa,t2.deal_sa,t2.deal_fi, t2.deal_images, t2.deal_stores,t2.deal_status FROM tbl_stores t1, tbl_deals t2 WHERE t1.s_id=$s_id and t2.d_id=$d_id"; 应用转换为Console应用。以下Winform代码可正常编译,但在运行时出现以下错误。我在线上经历了各种类似错误的解决方案,但仍然有些困惑。也许,有人可以为我的以下特定代码提供帮助:

注意:这可能与本文无关。但以防万一:我在Winform项目中引用了micaut 1.0 Type Library,这是下面的代码所需要的。

错误(在Winform上):

  
    

在应用程序中创建第一个IWin32Window对象之前,必须调用SetCompatibleTextRenderingDefault。

  

控制台应用程序中的代码

VS2017

尝试将上述代码转换为Winform应用 [出现错误]:

using System;
using System.Windows.Forms;
using micautLib;

namespace MathInputPanel
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MathInputControl ctrl = new MathInputControlClass();
            ctrl.EnableExtendedButtons(true);
            ctrl.Show();
            ctrl.Close += () => Application.ExitThread();
            Application.Run();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

由于错误正试图告诉您,您只能在创建第一个表单之前调用该函数。

将其移动到Main()(如果尚不存在)。