}
private void button2_Click(object sender, EventArgs e) {
this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); }
private void button3_Click(object sender, EventArgs e) {
this.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.Close(); } } }
(2)模式对话框主要程序代码如下:
using System;
using System.Collections.Generic; using System.Linq; using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.EditorInput;
[assembly: CommandClass(typeof(对话框.ModalDialog))] namespace 对话框 {
class ModalDialog {
[CommandMethod(\)] public void ShowModalDialog() {
using (MyForm form = new MyForm()) {
form.ShowInTaskbar = false; Application.ShowModalDialog(form);
if (form.DialogResult == System.Windows.Forms.DialogResult.OK) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage( \ + form.InputText.Text); } } } }
(3)编译,并在AutoCAD利用NETLOAD加载dll。
15
(4)非模态对话框主要程序代码如下:
using System;
using System.Collections.Generic; using System.Linq; using System.Text;
using System.Threading.Tasks; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
[assembly: CommandClass(typeof(对话框.ModelessDialog))] namespace 对话框 {
class ModelessDialog {
[CommandMethod(\)] public void ShowModelessDialog() {
MyForm form = new MyForm(); form.ShowInTaskbar = false; Application.ShowModalDialog(form); } } }
(5)编译,并在AutoCAD利用NETLOAD加载dll。
16
4.8 修改状态栏
(1)将下列代码修改成C# Dim Button As Pane = New Pane Button.Enabled = True Button.Text = \添加按钮实例\ Button.ToolTipText = \添加按钮实例 ToolTipsText\ Button.Visible = True Button.Style = PaneStyles.Normal AddHandler Button.MouseDown, AddressOf StatusBarButton1_MouseDown Application.StatusBar.Panes.Add(Button) End Sub Sub StatusBarButton1_MouseDown(ByVal sender As Object, ByVal e As StatusBarMouseDownEventArgs) Dim Button As Pane = sender MsgBox(\你按下了该按钮,你可在此添加你要执行的代码!\ End Sub (2)完整C#程序代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 17 using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Windows; [assembly: CommandClass(typeof(AddButton.Fg_Button))] namespace AddButton { public class Fg_Button { [CommandMethod(\)] public void AddButton() { Pane pane = new Pane(); pane.Enabled = true; pane.Text = \添加按钮实例\; pane.ToolTipText = \添加按钮实例ToolTipText\; pane.Visible = true; pane.Style = PaneStyles.Normal; Application.StatusBar.Panes.Add(pane); } } } (3)编译,并在AutoCAD利用NETLOAD加载dll。 4.9 创建进度条 (2)创建进度条----------------完整代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; [assembly: CommandClass(typeof(ProgressBar.Fg_ProgressBar))] namespace ProgressBar { public class Fg_ProgressBar { [CommandMethod(\)] 18 public void ProgressBarManaged() { ProgressMeter pm = new ProgressMeter(); pm.Start(\正在数据入库请稍后¨¨\); pm.SetLimit(1000); // Now our lengthy operation for (int i = 0; i <= 1000; i++) { System.Threading.Thread.Sleep(5); // Increment Progress Meter... pm.MeterProgress(); } pm.Stop(); } } } (2)编译,并在AutoCAD利用NETLOAD加载dll。 19