public partial class Form1 : Form{//方法1///调用user32函数[DllImport("user32.dll", EntryPoint = "SetFocus")]public static extern int SetFocus(IntPtr hWnd);public Form1(){InitializeComponent();}private void Button1_Click(object sender, EventArgs e){Database db = HostApplicationServices.WorkingDatabase;var doc = acadApp.DocumentManager.MdiActiveDocument;using (var m_DocumentLock = doc.LockDocument()){///设置cad窗口为焦点SetFocus(doc.Window.Handle);//方法2:调用CAD自带的Focus函数//Application.MainWindow.Focus();Editor ed = acadApp.DocumentManager.MdiActiveDocument.Editor;using (Transaction tr = db.TransactionManager.StartTransaction()){//using (EditorUserInteraction edUsrInt = ed.StartUserInteraction(this))//{// edUsrInt.End();// this.Focus();//}BlockTable bt = db.BlockTableId.GetObject(OpenMode.ForWrite) as BlockTable;BlockTableRecord modeSpace = db.CurrentSpaceId.GetObject(OpenMode.ForWrite) as BlockTableRecord;TextStyleTable tst = db.TextStyleTableId.GetObject(OpenMode.ForRead) as TextStyleTable;var pointRel = ed.GetPoint("\n拾取文字生成位置:");if (pointRel.Status != PromptStatus.OK) return;string lm = this.textBox1.Text;string mph = this.textBox2.Text;string cs = this.textBox3.Text;DBText text = new DBText();text.TextString = lm + mph + "号--" + cs;text.Position = pointRel.Value;text.VerticalMode = TextVerticalMode.TextVerticalMid;text.HorizontalMode = TextHorizontalMode.TextMid;text.AlignmentPoint = pointRel.Value;text.Height = 1;text.WidthFactor = 0.7;text.Layer = "门牌号";text.TextStyleId = tst["宋体"];modeSpace.AppendEntity(text);tr.AddNewlyCreatedDBObject(text, true);tr.Commit();}}}}
