339 lines
12 KiB
VB.net
339 lines
12 KiB
VB.net
Imports DD_LIB_Standards
|
|
|
|
Public Class ClassControlCreator
|
|
|
|
''' <summary>
|
|
''' Konstanten
|
|
''' </summary>
|
|
Private Const DEFAULT_TEXT = "Bezeichnung definieren"
|
|
|
|
Private Const DEFAULT_FONT_SIZE As Integer = 10
|
|
Private Const DEFAULT_FONT_FAMILY As String = "Arial"
|
|
Private Const DEFAULT_FONT_STYLE As FontStyle = FontStyle.Regular
|
|
Private Const DEFAULT_COLOR As Integer = 0
|
|
Private Const DEFAULT_WIDTH As Integer = 170
|
|
Private Const DEFAULT_HEIGHT As Integer = 20
|
|
Private Const DEFAULT_HEIGHT_TABLE As Integer = 150
|
|
|
|
Public Const PREFIX_TEXTBOX = "TXT"
|
|
Public Const PREFIX_LABEL = "LBL"
|
|
Public Const PREFIX_CHECKBOX = "CHK"
|
|
Public Const PREFIX_COMBOBOX = "CMB"
|
|
Public Const PREFIX_DATETIMEPICKER = "DTP"
|
|
Public Const PREFIX_DATAGRIDVIEW = "DGV"
|
|
Public Const PREFIX_TABLE = "TB"
|
|
Public Const PREFIX_LINE = "LINE"
|
|
|
|
''' <summary>
|
|
''' Standard Eigenschaften für alle Controls
|
|
''' </summary>
|
|
Private Class ControlDBProps
|
|
Public Guid As Integer
|
|
Public Name As String
|
|
Public Location As Point
|
|
Public [Font] As Font
|
|
Public [Color] As Color
|
|
End Class
|
|
|
|
Private Shared Function TransformDataRow(row As DataRow) As ControlDBProps
|
|
Dim x As Integer = row.Item("X_LOC")
|
|
Dim y As Integer = row.Item("Y_LOC")
|
|
Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), DEFAULT_FONT_STYLE)
|
|
Dim size As Single = NotNull(row.Item("FONT_SIZE"), DEFAULT_FONT_SIZE)
|
|
Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), DEFAULT_FONT_FAMILY)
|
|
Dim family As FontFamily = New FontFamily(familyString)
|
|
|
|
Dim Guid As Integer = row.Item("GUID")
|
|
Dim Name As String = row.Item("NAME")
|
|
Dim Location As New Point(x, y)
|
|
Dim Font As New Font(family, size, style, GraphicsUnit.Point)
|
|
Dim Color As Color = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR))
|
|
|
|
Return New ControlDBProps() With {
|
|
.Guid = Guid,
|
|
.Name = Name,
|
|
.Location = Location,
|
|
.Font = Font,
|
|
.Color = Color
|
|
}
|
|
End Function
|
|
|
|
Public Shared Function CreateBaseControl(ctrl As Control, row As DataRow, designMode As Boolean) As Control
|
|
Dim props As ControlDBProps = TransformDataRow(row)
|
|
|
|
ctrl.Tag = props.Guid
|
|
ctrl.Name = props.Name
|
|
ctrl.Location = props.Location
|
|
ctrl.Font = props.Font
|
|
ctrl.ForeColor = props.Color
|
|
|
|
If designMode Then
|
|
ctrl.Cursor = Cursors.Hand
|
|
End If
|
|
|
|
Return ctrl
|
|
End Function
|
|
|
|
' ----------------------- NEW CONTROLS -----------------------
|
|
|
|
Public Shared Function CreateNewTextBox(location As Point) As TextBox
|
|
Dim control As New TextBox With {
|
|
.Name = $"{PREFIX_TEXTBOX}_{clsTools.ShortGUID()}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Location = location,
|
|
.ReadOnly = True,
|
|
.BackColor = Color.White,
|
|
.Cursor = Cursors.Hand
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewLabel(location As Point) As Label
|
|
Dim control As New Label With {
|
|
.Name = $"{PREFIX_LABEL}_{clsTools.ShortGUID}",
|
|
.Text = DEFAULT_TEXT,
|
|
.AutoSize = True,
|
|
.Location = location,
|
|
.Cursor = Cursors.Hand
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewCheckbox(location As Point) As CheckBox
|
|
Dim control As New CheckBox With {
|
|
.Name = $"{PREFIX_CHECKBOX}_{clsTools.ShortGUID}",
|
|
.AutoSize = True,
|
|
.Text = DEFAULT_TEXT,
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewCombobox(location As Point) As ComboBox
|
|
Dim control As New ComboBox With {
|
|
.Name = $"{PREFIX_COMBOBOX}_{clsTools.ShortGUID}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewDatetimepicker(location As Point) As DateTimePicker
|
|
Dim control As New DateTimePicker With {
|
|
.Name = $"{PREFIX_DATETIMEPICKER}_{clsTools.ShortGUID}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.Format = DateTimePickerFormat.Short
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewDatagridview(location As Point) As DataGridView
|
|
Dim control As New DataGridView With {
|
|
.Name = $"{PREFIX_DATAGRIDVIEW}_{clsTools.ShortGUID}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.AllowUserToAddRows = False,
|
|
.AllowUserToDeleteRows = False,
|
|
.AllowUserToResizeColumns = False,
|
|
.AllowUserToResizeRows = False
|
|
}
|
|
|
|
control.Columns.Add(New DataGridViewTextBoxColumn With {
|
|
.HeaderText = "",
|
|
.Name = "column1"
|
|
})
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewTable(location As Point) As DataGridView
|
|
Dim control As New DataGridView With {
|
|
.Name = $"{PREFIX_TABLE}_{clsTools.ShortGUID}",
|
|
.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_TABLE),
|
|
.Cursor = Cursors.Hand,
|
|
.Location = location,
|
|
.AllowUserToAddRows = False,
|
|
.AllowUserToDeleteRows = False,
|
|
.AllowUserToResizeColumns = False,
|
|
.AllowUserToResizeRows = False
|
|
}
|
|
|
|
control.Columns.Add(New DataGridViewTextBoxColumn With {
|
|
.HeaderText = "Column1",
|
|
.Name = "column1"
|
|
})
|
|
|
|
control.Columns.Add(New DataGridViewTextBoxColumn With {
|
|
.HeaderText = "Column2",
|
|
.Name = "column2"
|
|
})
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateNewLine(location As Point) As LineLabel
|
|
Dim control As New LineLabel With {
|
|
.Name = $"{PREFIX_LINE}_{clsTools.ShortGUID}",
|
|
.Text = "---------------------------------",
|
|
.Size = New Size(100, 5),
|
|
.Location = location
|
|
}
|
|
|
|
Return control
|
|
End Function
|
|
|
|
' ----------------------- EXISITING CONTROLS -----------------------
|
|
|
|
Public Shared Function CreateExistingTextbox(row As DataRow, designMode As Boolean) As TextBox
|
|
Dim control As TextBox = CreateBaseControl(New TextBox(), row, designMode)
|
|
|
|
control.BackColor = Color.White
|
|
|
|
If row.Item("HEIGHT") > 27 Then
|
|
control.Multiline = True
|
|
|
|
End If
|
|
|
|
control.Height = row.Item("HEIGHT")
|
|
control.Width = row.Item("WIDTH")
|
|
|
|
If Not designMode Then
|
|
control.AcceptsReturn = True
|
|
control.ReadOnly = row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
Else
|
|
control.ReadOnly = True
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingLabel(row As DataRow, designMode As Boolean) As Label
|
|
Dim control As Label = CreateBaseControl(New Label(), row, designMode)
|
|
|
|
control.Text = row.Item("CTRL_TEXT")
|
|
control.AutoSize = True
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingCombobox(row As DataRow, designMode As Boolean) As ComboBox
|
|
Dim control As ComboBox = CreateBaseControl(New ComboBox(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
|
|
If Not designMode Then
|
|
control.Enabled = Not row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
|
|
control.AutoCompleteMode = AutoCompleteMode.SuggestAppend
|
|
control.AutoCompleteSource = AutoCompleteSource.ListItems
|
|
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingDatepicker(row As DataRow, designMode As Boolean) As DateTimePicker
|
|
Dim control As DateTimePicker = CreateBaseControl(New DateTimePicker(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
control.Format = DateTimePickerFormat.Short
|
|
|
|
If Not designMode Then
|
|
control.Enabled = Not row.Item("READ_ONLY")
|
|
control.TabStop = Not row.Item("READ_ONLY")
|
|
End If
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExisingCheckbox(row As DataRow, designMode As Boolean) As CheckBox
|
|
Dim control As CheckBox = CreateBaseControl(New CheckBox(), row, designMode)
|
|
|
|
control.AutoSize = True
|
|
control.Text = row.Item("CTRL_TEXT")
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingDataGridView(row As DataRow, designMode As Boolean) As DataGridView
|
|
Dim control As DataGridView = CreateBaseControl(New DataGridView(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
control.AllowUserToAddRows = False
|
|
control.AllowUserToDeleteRows = False
|
|
control.AllowUserToResizeColumns = False
|
|
control.AllowUserToResizeRows = False
|
|
control.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua
|
|
|
|
Dim col As New DataGridViewTextBoxColumn
|
|
col.HeaderText = ""
|
|
col.Name = "column1"
|
|
col.Width = control.Width - 30
|
|
control.Columns.Add(col)
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingTable(row As DataRow, columns As List(Of DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow), designMode As Boolean) As DataGridView
|
|
Dim control As DataGridView = CreateBaseControl(New DataGridView(), row, designMode)
|
|
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
control.AllowUserToAddRows = False
|
|
control.AllowUserToDeleteRows = False
|
|
control.AllowUserToResizeColumns = False
|
|
control.AllowUserToResizeRows = False
|
|
|
|
For Each column As DD_DMSLiteDataSet.TBPM_CONTROL_TABLERow In columns
|
|
Dim col As New DataGridViewTextBoxColumn() With {
|
|
.HeaderText = column.SPALTEN_HEADER,
|
|
.Name = column.SPALTENNAME,
|
|
.Width = column.SPALTENBREITE
|
|
}
|
|
|
|
control.Columns.Add(col)
|
|
Next
|
|
|
|
Return control
|
|
End Function
|
|
|
|
Public Shared Function CreateExistingLine(row As DataRow, designMode As Boolean) As LineLabel
|
|
Dim control As LineLabel = CreateBaseControl(New LineLabel(), row, designMode)
|
|
control.Text = "------------------------------"
|
|
control.BorderStyle = BorderStyle.None
|
|
control.AutoSize = False
|
|
control.BackColor = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR))
|
|
control.Size = New Size(row.Item("WIDTH"), row.Item("HEIGHT"))
|
|
|
|
Return control
|
|
End Function
|
|
|
|
|
|
' ----------------------- CUSTOM LABEL/LINE CLASS -----------------------
|
|
|
|
Public Class LineLabel
|
|
Inherits Label
|
|
|
|
Protected Overrides Sub OnPaint(e As PaintEventArgs)
|
|
'MyBase.OnPaint(e)
|
|
|
|
Dim size As New Size(e.ClipRectangle.Width, 2)
|
|
Dim rect As New Rectangle(New Point(0, 0), size)
|
|
|
|
'ControlPaint.DrawBorder(e.Graphics, rect, Me.ForeColor, ButtonBorderStyle.Solid)
|
|
e.Graphics.DrawLine(New Pen(ForeColor, 100), New Point(0, 0), New Point(e.ClipRectangle.Width, 2))
|
|
End Sub
|
|
End Class
|
|
End Class
|