Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.Colors Imports Autodesk.AutoCAD.EditorInput Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.Windows Public Class CREATDIALOG Private Sub Selected_LayersBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.Validate() Me.Selected_LayersBindingSource.EndEdit() Me.Selected_LayersTableAdapter.Update(Me.PWGSCDataSet.Selected_Layers) End Sub Private Sub CREATDIALOG_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'PWGSCDataSet.Selected_Layers' table. You can move, or remove it, as needed. Me.Selected_LayersTableAdapter.Fill(Me.PWGSCDataSet.Selected_Layers) Dim x As Integer ' Loop through all items the ListBox. For x = 0 To ListBox1.Items.Count - 1 ' Select all items that are not selected. ListBox1.SetSelected(x, True) ListBox2.SetSelected(x, True) ListBox3.SetSelected(x, True) ListBox4.SetSelected(x, True) Next x End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click CREATDIALOG.ActiveForm.Hide() End Sub Public Function CheckForLineType(ByVal typeline As String) As ObjectId Dim linetypeId As ObjectId Dim db As Database = HostApplicationServices.WorkingDatabase Dim t As Transaction = db.TransactionManager.StartTransaction() Dim tbl As LinetypeTable = t.GetObject(db.LinetypeTableId, OpenMode.ForRead, False) If tbl.Has(typeline) Then linetypeId = tbl(typeline) Else db.LoadLineTypeFile(typeline, "acad.lin") linetypeId = tbl(typeline) t.Commit() End If t.Dispose() Return linetypeId End Function Public Function CheckForLayer(ByVal namLay As String, ByVal colLay As String, ByVal typLin As String, ByVal Descrip As String) As ObjectId Dim layerId As ObjectId Dim db As Database = HostApplicationServices.WorkingDatabase Dim t As Transaction = db.TransactionManager.StartTransaction() Dim lt As LayerTable = t.GetObject(db.LayerTableId, OpenMode.ForWrite) If lt.Has(namLay) Then layerId = lt.Item(namLay) Else Dim ltr As LayerTableRecord = New LayerTableRecord ltr.Name = namLay ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, colLay) If typLin <> "Continuous" Then ltr.LinetypeObjectId = CheckForLineType(typLin) layerId = lt.Add(ltr) t.AddNewlyCreatedDBObject(ltr, True) t.Commit() End If t.Dispose() Return layerId End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim layern As String = "" Dim PENN As String = "" Dim DES As String = "" Dim LTY As String = "" Dim obj As System.Data.DataRowView For Each obj In ListBox1.SelectedItems layern = CType(obj.Item("Layer"), String) DES = CType(obj.Item("DESCRIPTION"), String) PENN = CType(obj.Item("PEN"), String) LTY = CType(obj.Item("LINETYPE"), String) CheckForLayer(layern, PENN, LTY, DES) Next Me.Close() End Sub End Class