许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  技术文档 >  sw二次开发窗体不可见

sw二次开发窗体不可见

阅读数 4
点赞 0
article_banner
在 SolidWorks(SW)二次开发中,若希望‌窗体不可见‌,通常有两种理解方向:

‌A. 隐藏 SolidWorks 主界面窗口(即整个 SW 应用窗口)‌

‌B. 隐藏自定义窗体(如 C WinForm 窗体)‌

根据公开资料和常见开发场景,结合你提到“窗体不可见”,‌更可能是指自定义窗体(如 C 窗体)在启动时不显示‌。以下是两种情况的解决方案:

A. 隐藏 SolidWorks 主窗口(整个 SW 界面)

可通过 SolidWorks API 控制文档或整个应用程序的可见性:

使用 swApp.DocumentVisible(false, swDocumentTypes_e.swDocPART) 等方法隐藏特定类型文档(如零件、装配体、工程图)‌‌

示例代码(C):

csharp

SldWorks swApp = (SldWorks)Marshal.GetActiveObject("SldWorks.Application");

sw二次开发窗体不可见

swApp.DocumentVisible(false, (int)swDocumentTypes_e.swDocPART);

注意:此操作仅影响文档窗口,‌不会隐藏 SW 主菜单栏、工具栏等 UI 元素‌。若需完全隐藏 SW 主窗口,需调用 Windows API(如 ShowWindow),但官方不推荐,可能引发稳定性问题。

B. 隐藏自定义窗体(如 C WinForm)

若使用的是 ‌C + Windows Forms‌ 开发 SW 插件,希望窗体启动时不显示,可按以下步骤操作:

‌将启动对象从窗体改为 Main() 方法‌

在项目属性 → 应用程序 → “启动对象”中,选择包含 Main() 的类(如 Program)。

‌在 Main() 中创建窗体但不调用 Show()‌

示例代码:

csharp

static class Program

{

sw二次开发窗体不可见

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Form1 form = new Form1();

form.Visible = false; // 关键:启动时不显示

form.Text = "Hidden Form";

// 可在此处执行后台逻辑

// ...

// 若后续需要显示,可调用 form.Show();

sw二次开发窗体不可见

Application.Run(form); // 启动消息泵,但窗体仍不可见

}

}

‌如需完全隐藏窗体(包括任务栏图标)‌,可设置:

csharp

form.ShowInTaskbar = false;

⚠️ 注意:若窗体是 SW 插件的主界面(如通过 IAddIn 加载),则不应隐藏,否则用户无法交互。此做法适用于‌后台服务型窗体‌或‌系统托盘应用‌。

总结建议

若目标是‌后台操作 SolidWorks 文件而不显示‌ → 使用 DocumentVisible(false, ...) ‌‌

若目标是‌隐藏自定义窗体‌ → 修改启动逻辑,不调用 Show() 并设置 Visible = false ‌‌

如需进一步帮助,请明确是隐藏 ‌SW 主界面‌ 还是 ‌自定义窗体‌。

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空