?? frmproperty.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 + -