frmAutoPartNumber.vb 18.1 KB
Newer Older
leaky114's avatar
leaky114 已提交
1 2 3 4
Imports System.Windows.Forms
Imports Inventor
Imports Microsoft
Imports Microsoft.VisualBasic
leaky114's avatar
leaky114 已提交
5
Imports System
leaky114's avatar
leaky114 已提交
6
Imports System.Collections.ObjectModel
leaky114's avatar
leaky114 已提交
7
Imports System.IO
leaky114's avatar
leaky114 已提交
8

leaky114's avatar
leaky114 已提交
9
Public Class frmAutoPartNumber
leaky114's avatar
leaky114 已提交
10 11

    '开始编号
leaky114's avatar
leaky114 已提交
12
    Private Sub btn开始_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn开始.Click
leaky114's avatar
leaky114 已提交
13

leaky114's avatar
leaky114 已提交
14 15 16
        Dim strOldFullFileName As String   '旧文件全名
        Dim strNewFullFileName As String   '新文件全名
        Dim oListViewItem As ListViewItem
leaky114's avatar
leaky114 已提交
17 18 19

        Try

leaky114's avatar
leaky114 已提交
20
            btn开始.Enabled = False
leaky114's avatar
leaky114 已提交
21 22 23 24 25 26
            Me.TopMost = False

            Dim oInteraction As InteractionEvents = ThisApplication.CommandManager.CreateInteractionEvents
            oInteraction.Start()
            oInteraction.SetCursor(CursorTypeEnum.kCursorTypeWindows, 32514)

leaky114's avatar
leaky114 已提交
27

leaky114's avatar
leaky114 已提交
28 29
            For i = 0 To lvw文件列表.Items.Count - 1
                oListViewItem = lvw文件列表.Items(i)
leaky114's avatar
leaky114 已提交
30

leaky114's avatar
leaky114 已提交
31
                strOldFullFileName = oListViewItem.SubItems(3).Text & "\" & oListViewItem.Text & oListViewItem.SubItems(1).Text
leaky114's avatar
leaky114 已提交
32

leaky114's avatar
leaky114 已提交
33
                If oListViewItem.SubItems(2).Text = "" Then
leaky114's avatar
leaky114 已提交
34 35
                    GoTo 999
                End If
leaky114's avatar
leaky114 已提交
36
                strNewFullFileName = oListViewItem.SubItems(3).Text & "\" & oListViewItem.SubItems(2).Text & oListViewItem.SubItems(1).Text
leaky114's avatar
leaky114 已提交
37 38

                '打开旧文件,不显示
leaky114's avatar
leaky114 已提交
39 40
                Dim oOldInventorDocument As Inventor.Document
                oOldInventorDocument = ThisApplication.Documents.Open(strOldFullFileName, False)
leaky114's avatar
leaky114 已提交
41 42

                '另存为新文件
leaky114's avatar
leaky114 已提交
43
                oOldInventorDocument.SaveAs(strNewFullFileName, False)
leaky114's avatar
leaky114 已提交
44 45

                '关闭旧图
leaky114's avatar
leaky114 已提交
46
                oOldInventorDocument.Close()
leaky114's avatar
leaky114 已提交
47 48

                '后台打开文件,修改ipro
leaky114's avatar
leaky114 已提交
49 50
                Dim oNewInventorDocument As Inventor.Document
                oNewInventorDocument = ThisApplication.Documents.Open(strNewFullFileName, False)  '打开文件,不显示
leaky114's avatar
leaky114 已提交
51
                SetDocumentIpropertyFromFileNameSub(oNewInventorDocument, True) '设置Iproperty,打开文件后需关闭
leaky114's avatar
leaky114 已提交
52

leaky114's avatar
leaky114 已提交
53 54
                Dim oComponentOccurrences As Inventor.ComponentOccurrences
                oComponentOccurrences = ThisApplication.ActiveDocument.ComponentDefinition.Occurrences
leaky114's avatar
leaky114 已提交
55 56

                '全部替换为新文件
leaky114's avatar
leaky114 已提交
57 58 59
                For Each oComponentOccurrence As ComponentOccurrence In oComponentOccurrences
                    If oComponentOccurrence.ReferencedDocumentDescriptor.FullDocumentName = strOldFullFileName Then
                        oComponentOccurrence.Replace(strNewFullFileName, True)
leaky114's avatar
leaky114 已提交
60 61 62 63
                        Exit For
                    End If
                Next

leaky114's avatar
leaky114 已提交
64
                Dim strOldDrawingFullFileName As String
leaky114's avatar
leaky114 已提交
65
                strOldDrawingFullFileName = GetChangeExtension(strOldFullFileName, IDW)   '旧工程图
leaky114's avatar
leaky114 已提交
66 67 68 69 70

                If IsFileExsts(strOldDrawingFullFileName) = True Then

                    Dim strNewDrawingFullFileName As String

leaky114's avatar
leaky114 已提交
71
                    strNewDrawingFullFileName = GetChangeExtension(strNewFullFileName, IDW)   '新工程图
leaky114's avatar
leaky114 已提交
72
                    FileSystem.FileCopy(strOldDrawingFullFileName, strNewDrawingFullFileName)             '复制为新工程图
leaky114's avatar
leaky114 已提交
73

leaky114's avatar
leaky114 已提交
74
                    ReplaceFileReference(strNewDrawingFullFileName, strOldFullFileName, strNewFullFileName)
leaky114's avatar
leaky114 已提交
75 76 77 78 79 80

                    'With oInventorDrawingDocument
                    '    .ReferencedDocumentDescriptors(1).ReferencedFileDescriptor.ReplaceReference(strNewFullFileName)
                    '    .Save2()
                    '    .Close()
                    'End With
leaky114's avatar
leaky114 已提交
81 82 83 84 85 86 87 88

                End If

                ThisApplication.ActiveDocument.Update()

999:
            Next

leaky114's avatar
leaky114 已提交
89
            Me.TopMost = True
90
            SetStatusBarText("自动命名图号完成!")
leaky114's avatar
leaky114 已提交
91
            MsgBox("自动命名图号完成", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "自动命名图号")
leaky114's avatar
leaky114 已提交
92
            btn开始.Enabled = True
leaky114's avatar
leaky114 已提交
93 94

            oInteraction.Stop()
leaky114's avatar
leaky114 已提交
95 96

        Catch ex As Exception
leaky114's avatar
leaky114 已提交
97
            Me.TopMost = True
leaky114's avatar
leaky114 已提交
98
            btn开始.Enabled = True
leaky114's avatar
leaky114 已提交
99 100 101 102 103 104
            MsgBox(ex.Message)
        End Try

    End Sub

    '关闭
leaky114's avatar
leaky114 已提交
105 106
    Private Sub btn关闭_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn关闭.Click
        lvw文件列表.Items.Clear()
leaky114's avatar
leaky114 已提交
107 108 109 110
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

leaky114's avatar
leaky114 已提交
111 112
    Private Sub btn上移_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn上移.Click
        ListViewUp(lvw文件列表)
leaky114's avatar
leaky114 已提交
113 114
    End Sub

leaky114's avatar
leaky114 已提交
115 116
    Private Sub btn下移_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn下移.Click
        ListViewDown(lvw文件列表)
leaky114's avatar
leaky114 已提交
117 118
    End Sub

leaky114's avatar
leaky114 已提交
119
    Private Sub lvw文件列表_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles lvw文件列表.ColumnClick
leaky114's avatar
leaky114 已提交
120 121
        If _ListViewSorter = clsListViewSorter.EnumSortOrder.Ascending Then
            Dim Sorter As New clsListViewSorter(e.Column, clsListViewSorter.EnumSortOrder.Descending)
leaky114's avatar
leaky114 已提交
122
            lvw文件列表.ListViewItemSorter = Sorter
leaky114's avatar
leaky114 已提交
123 124 125
            _ListViewSorter = clsListViewSorter.EnumSortOrder.Descending
        Else
            Dim Sorter As New clsListViewSorter(e.Column, clsListViewSorter.EnumSortOrder.Ascending)
leaky114's avatar
leaky114 已提交
126
            lvw文件列表.ListViewItemSorter = Sorter
leaky114's avatar
leaky114 已提交
127 128
            _ListViewSorter = clsListViewSorter.EnumSortOrder.Ascending
        End If
leaky114's avatar
leaky114 已提交
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
    End Sub

    'Private Sub ListView1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListView1.DragDrop
    '    '判断是否选择拖放的项,

    '    If ListView1.SelectedItems.Count = 0 Then
    '        Exit Sub
    '    End If

    '    '定义项的坐标点
    '    Dim cp As System.Drawing.Point
    '    cp = ListView1.PointToClient(New System.Drawing.Point(e.X, e.Y))
    '    Dim dragToItem As ListViewItem
    '    dragToItem = ListView1.GetItemAt(cp.X, cp.Y)

    '    If dragToItem Is Nothing Then
    '        Exit Sub
    '    End If

    '    Dim dragIndex As Integer = dragToItem.Index
    '    Dim sel As ListViewItem()
    '    ReDim sel(ListView1.SelectedItems.Count)

    '    For i = 0 To ListView1.SelectedItems.Count
    '        sel(i) = ListView1.SelectedItems(i)
    '    Next

    '    For i = 0 To sel.GetLength(0)
    '        Dim dragItem As ListViewItem
    '        dragItem = sel(i)
    '        Dim itemIndex As Integer = dragIndex

    '        If (itemIndex = dragItem.Index) Then
    '            Exit Sub
    '        End If

    '        If (dragItem.Index < itemIndex) Then
    '            Exit Sub
    '        Else
    '            itemIndex = dragIndex + i
    '            Dim insertItem As ListViewItem = dragItem.Clone()
    '            ListView1.Items.Insert(itemIndex, insertItem)
    '            ListView1.Items.Remove(dragItem)
    '        End If

    '    Next

    'End Sub

    'Private Sub ListView1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListView1.DragEnter
    '    For i = 0 To e.Data.GetFormats().Length - 1
    '        If (e.Data.GetFormats.Equals("System.Windows.Forms.ListView+SelectedListViewItemCollection")) Then
    '            e.Effect = DragDropEffects.Move
    '        End If
    '    Next
    'End Sub

    'Private Sub ListView1_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles ListView1.ItemDrag
    '    ListView1.DoDragDrop(ListView1.SelectedItems, DragDropEffects.Move)
    'End Sub

    '键盘上下键移动
leaky114's avatar
leaky114 已提交
191
    Private Sub lvw文件列表_KeyDown1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles lvw文件列表.KeyDown
leaky114's avatar
leaky114 已提交
192 193 194
        Select Case e.KeyCode
            Case Keys.Up
                If e.Control Then
leaky114's avatar
leaky114 已提交
195
                    ListViewUp(lvw文件列表)
leaky114's avatar
leaky114 已提交
196 197 198 199
                    e.Handled = True
                End If
            Case Keys.Down
                If e.Control Then
leaky114's avatar
leaky114 已提交
200
                    ListViewDown(lvw文件列表)
leaky114's avatar
leaky114 已提交
201 202 203
                    e.Handled = True
                End If
            Case Keys.Delete
leaky114's avatar
leaky114 已提交
204
                ListViewDel(lvw文件列表)
leaky114's avatar
leaky114 已提交
205 206 207 208
        End Select
    End Sub

    '预览
leaky114's avatar
leaky114 已提交
209
    Private Sub btn预览_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn预览.Click
leaky114's avatar
leaky114 已提交
210 211 212 213 214 215 216 217
        Dim oListViewItem As ListViewItem
        Dim intAssNum As Integer
        Dim intPartNum As Integer
        Dim oStockNumPartName As StockNumPartName = Nothing
        Dim strBasicStockNum As String

        intAssNum = 1
        intPartNum = 1
leaky114's avatar
leaky114 已提交
218
        strBasicStockNum = txt基准图号.Text
leaky114's avatar
leaky114 已提交
219

leaky114's avatar
leaky114 已提交
220
        If (IsNumeric(txt零件变量.Text) = False) Or (IsNumeric(cmb部件变量.Text) = False) Then
leaky114's avatar
leaky114 已提交
221 222 223 224
            MsgBox("变量非数字!", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "错误")
            Exit Sub
        End If

leaky114's avatar
leaky114 已提交
225 226
        Dim intPartChange As Integer = Val(txt零件变量.Text)
        Dim intAmsChange As Integer = Val(cmb部件变量.Text)
leaky114's avatar
leaky114 已提交
227

leaky114's avatar
leaky114 已提交
228 229 230
        For i = 0 To lvw文件列表.Items.Count - 1
            oListViewItem = lvw文件列表.Items(i)
            If oListViewItem.SubItems(1).Text = IPT Then
leaky114's avatar
leaky114 已提交
231
                oStockNumPartName.StockNum = Strings.Left(strBasicStockNum, Strings.Len(strBasicStockNum) - Strings.Len((intPartNum * intPartChange).ToString)) & intPartNum * intPartChange
leaky114's avatar
leaky114 已提交
232 233 234
                oStockNumPartName.PartName = oListViewItem.Text
                oListViewItem.SubItems(2).Text = oStockNumPartName.StockNum & oStockNumPartName.PartName
                intPartNum = intPartNum + 1
leaky114's avatar
leaky114 已提交
235
            ElseIf oListViewItem.SubItems(1).Text = IAM Then
leaky114's avatar
leaky114 已提交
236
                oStockNumPartName.StockNum = Strings.Left(strBasicStockNum, Strings.Len(strBasicStockNum) - Strings.Len((intAssNum * intAmsChange).ToString)) & intAssNum * intAmsChange
leaky114's avatar
leaky114 已提交
237 238 239
                oStockNumPartName.PartName = oListViewItem.Text
                oListViewItem.SubItems(2).Text = oStockNumPartName.StockNum & oStockNumPartName.PartName
                intAssNum = intAssNum + 1
leaky114's avatar
leaky114 已提交
240 241 242 243
            End If
        Next
    End Sub

leaky114's avatar
leaky114 已提交
244
    Private Sub frmAutoPartNumber_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
leaky114's avatar
leaky114 已提交
245

leaky114's avatar
leaky114 已提交
246 247
        Dim oInventorAssemblyDocument As Inventor.AssemblyDocument
        oInventorAssemblyDocument = ThisApplication.ActiveDocument
leaky114's avatar
leaky114 已提交
248

leaky114's avatar
leaky114 已提交
249
        LoadAssBOM(oInventorAssemblyDocument, lvw文件列表)
leaky114's avatar
leaky114 已提交
250 251

        btn确定新文件名.Image = My.Resources.确定161632.ToBitmap
leaky114's avatar
leaky114 已提交
252 253 254
    End Sub

    '载入数据函数
leaky114's avatar
leaky114 已提交
255 256
    Private Sub LoadAssBOM(ByVal oInventorAssemblyDocument As Inventor.AssemblyDocument, ByVal oListView As ListView)
        On Error Resume Next
leaky114's avatar
leaky114 已提交
257 258 259 260 261 262

        '基于bom结构化数据,可跳过参考的文件
        ' Set a reference to the BOM

        Dim oBOM As BOM

leaky114's avatar
leaky114 已提交
263
        Dim strInventorAssemblyFullFileName As String
leaky114's avatar
leaky114 已提交
264

leaky114's avatar
leaky114 已提交
265
        strInventorAssemblyFullFileName = oInventorAssemblyDocument.FullDocumentName
leaky114's avatar
leaky114 已提交
266

leaky114's avatar
leaky114 已提交
267
        Dim oStockNumPartName As StockNumPartName
leaky114's avatar
leaky114 已提交
268
        oStockNumPartName = GetStockNumPartName(strInventorAssemblyFullFileName)
leaky114's avatar
leaky114 已提交
269
        txt基准图号.Text = oStockNumPartName.StockNum
leaky114's avatar
leaky114 已提交
270

leaky114's avatar
leaky114 已提交
271
        oBOM = oInventorAssemblyDocument.ComponentDefinition.BOM
leaky114's avatar
leaky114 已提交
272 273 274 275
        oBOM.StructuredViewEnabled = True

        'Set a reference to the "Structured" BOMView

leaky114's avatar
leaky114 已提交
276
        oListView.Items.Clear()
leaky114's avatar
leaky114 已提交
277

leaky114's avatar
leaky114 已提交
278
        oListView.BeginUpdate()
leaky114's avatar
leaky114 已提交
279

leaky114's avatar
leaky114 已提交
280
        '获取结构化的bom页面
leaky114's avatar
leaky114 已提交
281
        For Each oBOMView As BOMView In oBOM.BOMViews
leaky114's avatar
leaky114 已提交
282 283 284 285
            If oBOMView.ViewType = BOMViewTypeEnum.kStructuredBOMViewType Then

                For i = 1 To oBOMView.BOMRows.Count
                    ' Get the current row.
leaky114's avatar
leaky114 已提交
286 287
                    Dim oBOMRow As BOMRow
                    oBOMRow = oBOMView.BOMRows.Item(i)
leaky114's avatar
leaky114 已提交
288

leaky114's avatar
leaky114 已提交
289
                    Dim strFullFileName As String
leaky114's avatar
leaky114 已提交
290

leaky114's avatar
leaky114 已提交
291
                    strFullFileName = oBOMRow.ReferencedFileDescriptor.FullFileName
leaky114's avatar
leaky114 已提交
292 293

                    '测试文件
leaky114's avatar
leaky114 已提交
294
                    If InStr(strFullFileName, ContentCenterFiles) > 0 Then         '跳过零件库文件
leaky114's avatar
leaky114 已提交
295 296

                    Else
leaky114's avatar
leaky114 已提交
297 298 299 300 301
                        Debug.Print(strFullFileName)
                        Dim oFileNameInfo As FileNameInfo
                        oFileNameInfo = GetFileNameInfo(strFullFileName)

                        Dim oListViewItem As ListViewItem
leaky114's avatar
leaky114 已提交
302
                        oListViewItem = oListView.Items.Add(oFileNameInfo.OnlyName)
leaky114's avatar
leaky114 已提交
303 304 305 306 307
                        With oListViewItem
                            .SubItems.Add(oFileNameInfo.ExtensionName)
                            .SubItems.Add("")
                            .SubItems.Add(oFileNameInfo.Folder)
                        End With
leaky114's avatar
leaky114 已提交
308 309 310 311 312 313
                    End If

                Next
            End If
        Next

leaky114's avatar
leaky114 已提交
314
        oListView.EndUpdate()
leaky114's avatar
leaky114 已提交
315

leaky114's avatar
leaky114 已提交
316 317 318
    End Sub

    '移出项
leaky114's avatar
leaky114 已提交
319 320 321
    Private Sub ListViewDel(ByVal oListView As ListView)
        For i As Integer = oListView.SelectedIndices.Count - 1 To 0 Step -1
            oListView.Items.RemoveAt(oListView.SelectedIndices(i))
leaky114's avatar
leaky114 已提交
322 323 324
        Next
    End Sub

leaky114's avatar
leaky114 已提交
325 326
    Private Sub btn移出_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn移出.Click
        ListViewDel(lvw文件列表)
leaky114's avatar
leaky114 已提交
327 328 329
    End Sub

    '重载数据
leaky114's avatar
leaky114 已提交
330
    Private Sub btn重载_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn重载.Click
leaky114's avatar
leaky114 已提交
331 332 333 334 335
        Dim oInventorAssemblyDocument As Inventor.AssemblyDocument
        oInventorAssemblyDocument = ThisApplication.ActiveDocument

        LoadAssBOM(oInventorAssemblyDocument, lvw文件列表)

leaky114's avatar
leaky114 已提交
336 337
    End Sub

leaky114's avatar
leaky114 已提交
338 339 340 341
    Private Sub btn确定新文件名_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn确定新文件名.Click
        If lvw文件列表.SelectedIndices.Count > 0 Then
            Dim index As Integer = lvw文件列表.SelectedIndices(0)
            lvw文件列表.Items(index).SubItems(2).Text = txt新文件名.Text
leaky114's avatar
leaky114 已提交
342 343 344 345
        End If

    End Sub

leaky114's avatar
leaky114 已提交
346
    Private Sub lvw文件列表_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvw文件列表.SelectedIndexChanged
leaky114's avatar
leaky114 已提交
347
        Try
leaky114's avatar
leaky114 已提交
348 349 350 351 352
            If lvw文件列表.SelectedIndices.Count > 0 Then
                Dim index As Integer = lvw文件列表.SelectedIndices(0)  '选中行的下一行索引
                If index < lvw文件列表.Items.Count Then
                    txt新文件名.Text = lvw文件列表.Items(index).SubItems(2).Text
                    Dim item As ListViewItem = lvw文件列表.Items(index)
leaky114's avatar
leaky114 已提交
353 354
                    Dim strOldFullFileName As String   '旧文件全名
                    strOldFullFileName = item.SubItems(3).Text & "\" & item.Text & item.SubItems(1).Text
leaky114's avatar
leaky114 已提交
355

leaky114's avatar
leaky114 已提交
356 357
                    Dim oInventorAssemblyDocument As Inventor.AssemblyDocument
                    oInventorAssemblyDocument = ThisApplication.ActiveDocument
leaky114's avatar
leaky114 已提交
358 359 360

                    Dim strInventorAssemblyFullFileName As String
                    strInventorAssemblyFullFileName = oInventorAssemblyDocument.FullFileName
leaky114's avatar
leaky114 已提交
361

leaky114's avatar
21.12.3  
leaky114 已提交
362
                    ' 获取装配定义
leaky114's avatar
leaky114 已提交
363 364
                    Dim oAssemblyComponentDefinition As AssemblyComponentDefinition
                    oAssemblyComponentDefinition = oInventorAssemblyDocument.ComponentDefinition
leaky114's avatar
leaky114 已提交
365

leaky114's avatar
21.12.3  
leaky114 已提交
366
                    ' 获取装配子集
leaky114's avatar
leaky114 已提交
367 368
                    Dim oComponentOccurrences As ComponentOccurrences
                    oComponentOccurrences = oAssemblyComponentDefinition.Occurrences
leaky114's avatar
leaky114 已提交
369 370 371 372 373 374

                    '指定要选择的文件()
                    'Dim oDoc As Document
                    'oDoc = ThisApplication.Documents.ItemByName(OldFullFileName)

                    '遍历
leaky114's avatar
leaky114 已提交
375
                    For Each oComponentOccurrence As ComponentOccurrence In oComponentOccurrences
leaky114's avatar
leaky114 已提交
376
                        If oComponentOccurrence.ReferencedDocumentDescriptor.FullDocumentName = strOldFullFileName Then
leaky114's avatar
leaky114 已提交
377
                            ThisApplication.CommandManager.DoSelect(oComponentOccurrence)
leaky114's avatar
leaky114 已提交
378
                        Else
leaky114's avatar
leaky114 已提交
379
                            ThisApplication.CommandManager.DoUnSelect(oComponentOccurrence)
leaky114's avatar
leaky114 已提交
380 381 382 383 384 385 386 387 388 389 390 391
                        End If

                    Next

                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

leaky114's avatar
leaky114 已提交
392
    Private Sub lvw文件列表_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvw文件列表.DragDrop
leaky114's avatar
leaky114 已提交
393 394
        Dim oDraggedItem As ListViewItem
        oDraggedItem = e.Data.GetData(System.Windows.Forms.DataFormats.Serializable)
leaky114's avatar
leaky114 已提交
395 396

        Dim ptScreen As Drawing.Point = New Drawing.Point(e.X, e.Y)
leaky114's avatar
leaky114 已提交
397
        Dim pt As Drawing.Point = lvw文件列表.PointToClient(ptScreen)
leaky114's avatar
leaky114 已提交
398
        Dim TargetItem As ListViewItem
leaky114's avatar
leaky114 已提交
399
        TargetItem = lvw文件列表.GetItemAt(pt.X, pt.Y) '拖动的项将放置于该项之前
leaky114's avatar
leaky114 已提交
400 401 402
        If (TargetItem Is Nothing) Then
            Exit Sub
        End If
leaky114's avatar
leaky114 已提交
403 404
        lvw文件列表.Items.Insert(TargetItem.Index, oDraggedItem.Clone())
        lvw文件列表.Items.Remove(oDraggedItem)
leaky114's avatar
leaky114 已提交
405 406
    End Sub

leaky114's avatar
leaky114 已提交
407
    Private Sub lvwFileList_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvw文件列表.DragEnter
leaky114's avatar
leaky114 已提交
408 409 410
        e.Effect = DragDropEffects.Move
    End Sub

leaky114's avatar
leaky114 已提交
411 412
    Private Sub lvw文件列表_DragLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvw文件列表.DragLeave
        lvw文件列表.InsertionMark.Index = -1
leaky114's avatar
leaky114 已提交
413 414
    End Sub

leaky114's avatar
leaky114 已提交
415
    Private Sub lvw文件列表_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvw文件列表.DragOver
leaky114's avatar
leaky114 已提交
416
        Dim ptScreen As Drawing.Point = New Drawing.Point(e.X, e.Y)
leaky114's avatar
leaky114 已提交
417
        Dim pt As Drawing.Point = lvw文件列表.PointToClient(ptScreen)
leaky114's avatar
leaky114 已提交
418

leaky114's avatar
leaky114 已提交
419 420
        Dim index As Integer = lvw文件列表.InsertionMark.NearestIndex(pt)
        lvw文件列表.InsertionMark.Index = index
leaky114's avatar
leaky114 已提交
421 422
    End Sub

leaky114's avatar
leaky114 已提交
423 424 425
    Private Sub lvw文件列表_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles lvw文件列表.ItemDrag
        lvw文件列表.InsertionMark.Color = System.Drawing.Color.ForestGreen
        lvw文件列表.DoDragDrop(e.Item, DragDropEffects.Move)
leaky114's avatar
leaky114 已提交
426 427 428

    End Sub

leaky114's avatar
leaky114 已提交
429 430
    Private Sub txt零件变量_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt零件变量.TextChanged
        If IsNumeric(txt零件变量.Text) = False Then
leaky114's avatar
leaky114 已提交
431 432 433 434
            MsgBox("非数字!", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "错误")
        End If
    End Sub

leaky114's avatar
leaky114 已提交
435 436 437 438 439
    'Private Sub txt新文件名_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txt新文件名.KeyPress
    '    If Asc(e.KeyChar) = Keys.Enter Then
    '        btn确定新文件名.PerformClick()
    '    End If
    'End Sub
leaky114's avatar
leaky114 已提交
440

leaky114's avatar
21.12.3  
leaky114 已提交
441
End Class