c# 将winform窗体应用程序编译成dll

1. 建立一个新工程。
2. 编辑你需要的窗体。
3. 运行,调试。保证你的窗体功能正常了。
4. 在你的“解决方案”面板上(如果没有,就点Ctrl-Alt-L),找到你的工程(默认是第二行)。点击鼠标右键。 
5. 点击“属性”菜单项。 
6. 如果是2003,会出来一个对话框。如果是2005,会在编辑代码的那里新出来一页。但是内容都是类似的。 
7. 现在找到“输出类型”,下拉框中得值应该是“Windows Application”,现在改成“Class Library”。 
8. 点击“确定”(2003)或 Ctrl-S(2005)来保存修改。 
9. Ctrl-Shift-B,来重新编译。 
10. 好了,你现在在工程文件的bin\Debug 或者 bin\Release中找到编译好的dll了。 

现在你需要记住三件事: 
1. dll的文件路径。 
2. 你编辑的窗体的命名空间(namespace)。 
3. 你编辑的窗体的类名。 

好了,现在开始引用: 
1. 创建好一个新的工程。 
2. 在你的“解决方案”面板上(如果没有,就点Ctrl-Alt-L),找到References(默认是第三行),点击右键。 
3. 选择“添加引用...”菜单项。 
4. 会弹出一个对话框。点击Borwse,找到你刚才写的那个dll文件。打开。 
5. 现在,在对话框的列表中找到你刚刚打开的那个dll的名字。点击“选择”按钮。 
6. 点击“确定”按钮,关闭对话框。 

好了,现在就可以使用你封装的窗体了。
要在C# Winform中嵌入基恩士应用程序exe,可以使用Process类来启动应用程序,并将其嵌入到窗体中。以下是实现步骤: 1. 打开Visual Studio中的Winform项目,并在工具箱中添加一个Panel控件。 2. 在代码中使用Process类的Start方法来启动基恩士应用程序exe,并将其嵌入到Panel控件中。 3. 设置基恩士应用程序exe的属性和方法,以便与其进行交互。 以下是代码示例: ```csharp using System.Diagnostics; using System.Windows.Forms; namespace WinformApp { public partial class Form1 : Form { private Process process; public Form1() { InitializeComponent(); // 启动基恩士应用程序exe process = new Process(); process.StartInfo.FileName = "KeenShine.exe"; process.StartInfo.Arguments = ""; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.Start(); // 将基恩士应用程序exe嵌入到Panel控件中 process.WaitForInputIdle(); SetParent(process.MainWindowHandle, panel1.Handle); // 设置窗体大小和位置 process.StartInfo.WindowStyle = ProcessWindowStyle.Normal; process.WaitForInputIdle(); MoveWindow(process.MainWindowHandle, 0, 0, panel1.Width, panel1.Height, true); // 设置基恩士应用程序exe的属性和方法 process.StandardInput.WriteLine("Command1"); var result = process.StandardOutput.ReadLine(); // ... } protected override void OnFormClosing(FormClosingEventArgs e) { base.OnFormClosing(e); // 关闭基恩士应用程序exe process.Kill(); } [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll")] private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int width, int height, bool repaint); } } ``` 在上面的代码中,panel1是Winform中的一个Panel控件,用来显示基恩士应用程序exe。你需要根据实际情况设置基恩士应用程序exe的属性和方法。需要注意的是,在关闭窗体时,需要使用Process类的Kill方法来关闭基恩士应用程序exe。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值