⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmproperty.vb

📁 用VB.NET开发的GeoMedia一个实例
💻 VB
字号:
Public Class FrmProperty
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        InitDataTable()
        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写处置以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意:以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
    Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
    Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
    Friend WithEvents btnOK As System.Windows.Forms.Button
    Friend WithEvents DataGridGeneral As System.Windows.Forms.DataGrid
    Friend WithEvents DataGridAttributes As System.Windows.Forms.DataGrid
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.TabControl1 = New System.Windows.Forms.TabControl()
        Me.TabPage1 = New System.Windows.Forms.TabPage()
        Me.DataGridGeneral = New System.Windows.Forms.DataGrid()
        Me.TabPage2 = New System.Windows.Forms.TabPage()
        Me.btnOK = New System.Windows.Forms.Button()
        Me.DataGridAttributes = New System.Windows.Forms.DataGrid()
        Me.TabControl1.SuspendLayout()
        Me.TabPage1.SuspendLayout()
        CType(Me.DataGridGeneral, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.TabPage2.SuspendLayout()
        CType(Me.DataGridAttributes, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        '
        'TabControl1
        '
        Me.TabControl1.Controls.AddRange(New System.Windows.Forms.Control() {Me.TabPage1, Me.TabPage2})
        Me.TabControl1.Location = New System.Drawing.Point(1, 13)
        Me.TabControl1.Name = "TabControl1"
        Me.TabControl1.SelectedIndex = 0
        Me.TabControl1.Size = New System.Drawing.Size(239, 326)
        Me.TabControl1.TabIndex = 0
        '
        'TabPage1
        '
        Me.TabPage1.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGridGeneral})
        Me.TabPage1.Location = New System.Drawing.Point(4, 21)
        Me.TabPage1.Name = "TabPage1"
        Me.TabPage1.Size = New System.Drawing.Size(231, 301)
        Me.TabPage1.TabIndex = 0
        Me.TabPage1.Text = "通用属性"
        '
        'DataGridGeneral
        '
        Me.DataGridGeneral.CaptionVisible = False
        Me.DataGridGeneral.DataMember = ""
        Me.DataGridGeneral.Dock = System.Windows.Forms.DockStyle.Fill
        Me.DataGridGeneral.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGridGeneral.Name = "DataGridGeneral"
        Me.DataGridGeneral.ReadOnly = True
        Me.DataGridGeneral.Size = New System.Drawing.Size(231, 301)
        Me.DataGridGeneral.TabIndex = 0
        '
        'TabPage2
        '
        Me.TabPage2.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGridAttributes})
        Me.TabPage2.Location = New System.Drawing.Point(4, 21)
        Me.TabPage2.Name = "TabPage2"
        Me.TabPage2.Size = New System.Drawing.Size(231, 275)
        Me.TabPage2.TabIndex = 1
        Me.TabPage2.Text = "具体属性"
        '
        'btnOK
        '
        Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.btnOK.Location = New System.Drawing.Point(88, 352)
        Me.btnOK.Name = "btnOK"
        Me.btnOK.TabIndex = 1
        Me.btnOK.Text = "关闭"
        '
        'DataGridAttributes
        '
        Me.DataGridAttributes.CaptionVisible = False
        Me.DataGridAttributes.DataMember = ""
        Me.DataGridAttributes.Dock = System.Windows.Forms.DockStyle.Fill
        Me.DataGridAttributes.HeaderForeColor = System.Drawing.SystemColors.ControlText
        Me.DataGridAttributes.Name = "DataGridAttributes"
        Me.DataGridAttributes.ReadOnly = True
        Me.DataGridAttributes.Size = New System.Drawing.Size(231, 275)
        Me.DataGridAttributes.TabIndex = 0
        '
        'FrmProperty
        '
        Me.AcceptButton = Me.btnOK
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(244, 389)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnOK, Me.TabControl1})
        Me.Name = "FrmProperty"
        Me.ShowInTaskbar = False
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
        Me.Text = "属性"
        Me.TabControl1.ResumeLayout(False)
        Me.TabPage1.ResumeLayout(False)
        CType(Me.DataGridGeneral, System.ComponentModel.ISupportInitialize).EndInit()
        Me.TabPage2.ResumeLayout(False)
        CType(Me.DataGridAttributes, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private dtGeneral, dtAttributes As DataTable
    Private objRS As PClient.GRecordset

    Private Sub FrmProperty_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dc As DataColumn
        For Each dc In dtGeneral.Columns
            dc.ColumnName = dc.Caption
        Next

        DataGridGeneral.DataSource = dtGeneral
        DataGridAttributes.DataSource = dtAttributes

        '设置窗口的标题
        Me.Text = objRS.GFields(0).SourceTable + "的属性"
    End Sub

    Private Sub InitDataTable()
        dtGeneral = New DataTable()
        dtAttributes = New DataTable()

        Dim dc As DataColumn
        dc = New DataColumn("Name")
        dc.Caption = "名称"
        dtGeneral.Columns.Add(dc)
        dc = New DataColumn("Value")
        dc.Caption = "值"
        dtGeneral.Columns.Add(dc)

        dc = New DataColumn("Name")
        dc.Caption = "名称"
        dtAttributes.Columns.Add(dc)
        dc = New DataColumn("Value")
        dc.Caption = "值"
        dtAttributes.Columns.Add(dc)
    End Sub


    'use the attribute of Selected object to fill the FlexGrid
    'include General information and attributes
    Public Sub FillFlexGrid(ByRef SelectObject As Object, ByRef OcxMapView As AxMapviewLib.AxGMMapView)
        On Error GoTo errhandle
        Dim vBookMark As Object
        Dim objMeas As New PClient.MeasurementService()
        Dim objUOM As New PCSS.UnitsOfMeasure()
        Dim dblMiles As Double
        Dim lngInUnit, lngOutUnit As Integer
        Dim strOutputUnit As String

        Dim FieldCount As Short
        Dim i, j As Short
        Dim drAttribute, drGeneral As DataRow

        'set the CoordSystem of mapview to objMeas
        With objMeas
            .CoordSystem = OcxMapView.CoordSystemsMgr.CoordSystem
            .ReferenceSpace = PCSS.CSSReferenceSpaceConstants.gmcssProjection
        End With

        'locate the current selected record
        objRS = SelectObject.Recordset
        vBookMark = SelectObject.Bookmark
        objRS.Bookmark = vBookMark

        'set the grid's row number
        FieldCount = objRS.GFields.Count

        'fill the grid
        For i = 0 To FieldCount - 1
            drAttribute = dtAttributes.NewRow()
            drAttribute("Name") = objRS.GFields(i).SourceField

            ' if the GField is not a geometry field
            If objRS.GFields(i).Type < 32 Then
                If IsDBNull(objRS.GFields(i).Value) Then
                    drAttribute("Value") = ""
                Else
                    Select Case objRS.GFields(i).Type
                        Case 2 To 8 'numeric type
                            drAttribute("Value") = LTrim(Str(objRS.GFields(i).Value))
                        Case 1 'boolean type
                            If objRS.GFields(i).Value Then
                                drAttribute("Value") = "true"
                            Else
                                drAttribute("Value") = "false"
                            End If
                        Case 11 'Memo type
                            drAttribute("Value") = "Memo"
                        Case Else 'string type
                            drAttribute("Value") = objRS.GFields(i).Value

                    End Select
                End If
            Else 'if the gfield is a geometry field
                drAttribute("Value") = "Geometry object"
                Select Case objRS.GFields(i).SubType
                    Case 1 'Linear  type
                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Feature Class"
                        drGeneral("Value") = objRS.GFields(i).SourceTable
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Connection Name"
                        drGeneral("Value") = gobjConnection.ConnectionName
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Discription"
                        drGeneral("Value") = gobjConnection.Description
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Geometry Type"
                        drGeneral("Value") = "Linear"
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Length"

                        lngInUnit = objUOM.GetUnitID(PCSS.UnitTypeConstants.igUnitDistance, "m")
                        lngOutUnit = objUOM.GetUnitID(PCSS.UnitTypeConstants.igUnitDistance, "m")
                        strOutputUnit = objUOM.GetUnitName(lngOutUnit)

                        objMeas.Geometry = Common.GeometryOP.BlobToGeometry((objRS.GFields(i).Value))
                        dblMiles = objUOM.ConvertUnitToUnit(PCSS.UnitTypeConstants.igUnitDistance, objMeas.Length, lngInUnit, lngOutUnit)

                        drGeneral("Value") = Format(dblMiles, "##.##") & " " & strOutputUnit
                        dtGeneral.Rows.Add(drGeneral)
                    Case 2 'area type
                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Feature Class"
                        drGeneral("Value") = objRS.GFields(i).SourceTable
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Connection Name"
                        drGeneral("Value") = gobjConnection.ConnectionName
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Discription"
                        drGeneral("Value") = gobjConnection.Description
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Geometry Type"
                        drGeneral("Value") = "Linear"
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Area"

                        lngInUnit = objUOM.GetUnitID(PCSS.UnitTypeConstants.igUnitArea, "m^2")
                        lngOutUnit = objUOM.GetUnitID(PCSS.UnitTypeConstants.igUnitArea, "m^2")
                        strOutputUnit = objUOM.GetUnitName(lngOutUnit)

                        objMeas.Geometry = Common.GeometryOP.BlobToGeometry((objRS.GFields(i).Value))
                        dblMiles = objUOM.ConvertUnitToUnit(PCSS.UnitTypeConstants.igUnitArea, objMeas.Area, lngInUnit, lngOutUnit)

                        drGeneral("Value") = Format(dblMiles, "##.##") & " " & strOutputUnit
                        dtGeneral.Rows.Add(drGeneral)
                    Case 10 'point type
                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Feature Class"
                        drGeneral("Value") = objRS.GFields(i).SourceTable
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Connection Name"
                        drGeneral("Value") = gobjConnection.ConnectionName
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Discription"
                        drGeneral("Value") = gobjConnection.Description
                        dtGeneral.Rows.Add(drGeneral)

                        drGeneral = dtGeneral.NewRow
                        drGeneral("Name") = "Geometry Type"
                        drGeneral("Value") = "Point"
                        dtGeneral.Rows.Add(drGeneral)
                    Case Else
                End Select
            End If
            dtAttributes.Rows.Add(drAttribute)
        Next

        Me.ShowDialog()
        Exit Sub
errhandle:
        MsgBox(Err.Description, MSGBOX_ERROR, "FillDataGrid")
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -