using GrxCAD.ApplicationServices; using GrxCAD.DatabaseServices; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HCTools { public partial class Layerchange_Form : Form { public Layerchange_Form() { InitializeComponent(); } private void button_choose_Click(object sender, EventArgs e) { FolderBrowserDialog open = new FolderBrowserDialog(); open.Description = "请选择文件夹"; if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK) { textBox_dwgpath.Text = open.SelectedPath; } if (textBox_dwgpath.Text == "") { MessageBox.Show("未选择文件夹"); return; } // 获取dwg文件 else { this.Hide(); DirectoryInfo root = new DirectoryInfo(textBox_dwgpath.Text); List filename = new List(); //文件名 FileInfo[] files = root.GetFiles(); foreach (FileInfo file in files) { if (file.Name.Substring(file.Name.Length - 4, 4) != ".dwg") continue; else filename.Add(file.Name); } string dwg = textBox_dwgpath.Text + "\\" + filename[0]; //获取文件中图层 Document doc = GrxCAD.ApplicationServices.Application.DocumentManager.Add(dwg); Database database = doc.Database; using (Transaction traction = database.TransactionManager.StartTransaction()) { //存放所有图层名 List alllayername = new List(); LayerTable layertable = traction.GetObject(database.LayerTableId, OpenMode.ForRead) as LayerTable; foreach (ObjectId objid in layertable) { LayerTableRecord layertablerecord = traction.GetObject(objid, OpenMode.ForRead) as LayerTableRecord; alllayername.Add(layertablerecord.Name); } alllayername.Sort(); for (int i = 0; i < alllayername.Count; i++) { this.checkedListBox_tc.Items.Add(alllayername[i]); } traction.Commit(); } doc.CloseAndDiscard(); this.Show(); } } private void button_ok_Click(object sender, EventArgs e) { if (textBox_dwgpath.Text == "") { MessageBox.Show("未选择文件夹!"); return; } else if (textBox_savepath.Text == "") { MessageBox.Show("未选择保存路径!"); return; } else { LayerChange.dwgpath = textBox_dwgpath.Text; List list = new List(); for (int i = 0; i < checkedListBox_tc.CheckedItems.Count; i++) { list.Add(checkedListBox_tc.CheckedItems[i].ToString()); } LayerChange.lys = list; if (checkBox_delete.Checked == true) { LayerChange lyc = new LayerChange(); LayerChange.flag = 0; lyc.chagly(); this.Close(); } if (checkBox_close.Checked == true) { LayerChange lyc = new LayerChange(); LayerChange.flag = 1; lyc.chagly(); this.Close(); } if (checkBox_open.Checked == true) { LayerChange lyc = new LayerChange(); LayerChange.flag = 2; lyc.chagly(); this.Close(); } if (checkBox_deletnull.Checked == true) { LayerChange lyc = new LayerChange(); LayerChange.flag = 3; lyc.chagly(); this.Close(); } if (checkBox_deletself.Checked == true) { LayerChange lyc = new LayerChange(); LayerChange.flag = 4; lyc.chagly(); this.Close(); } } } private void button_cancel_Click(object sender, EventArgs e) { this.Close(); } private void Layerchange_Form_Load(object sender, EventArgs e) { this.MaximizeBox = false; this.StartPosition = FormStartPosition.CenterScreen; } private void button_cssavepath_Click(object sender, EventArgs e) { FolderBrowserDialog open = new FolderBrowserDialog(); open.Description = "请选择文件夹"; if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK) textBox_savepath.Text = open.SelectedPath; LayerChange.savepath = textBox_savepath.Text; } private void checkBox_selectall_CheckedChanged(object sender, EventArgs e) { if (checkBox_selectall.Checked == true) { for (int i = 0; i < checkedListBox_tc.Items.Count; i++) { checkedListBox_tc.SetItemCheckState(i, CheckState.Checked); } } else { for (int i = 0; i < checkedListBox_tc.Items.Count; i++) { checkedListBox_tc.SetItemCheckState(i, CheckState.Unchecked); } } } } }