Imports DevExpress.XtraEditors Imports DevExpress.XtraLayout Public Class frmFormDesigner Private Const CONTROL_TEXTEDIT = "TextBox" Private Const CONTROL_MEMOEDIT = "Memoedit" Private Const CONTROL_COMBOEDIT = "Combobox" Private Const CONTROL_CHECKEDIT = "Checkbox" Private Const CONTROL_RADIOEDIT = "Radiobutton" Private Const CONTROL_DATEEDIT = "Datepicker" Private Sub frmFormDesigner_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim oFormId As Int64 = 104 My.Channel.CreateDatabaseRequest("Load Controls", True) Dim oSQL As String = $"SELECT * FROM VWICM_FORMCONTROL WHERE FORMID = {oFormId}" Dim oResult = My.Channel.ReturnDatatable(oSQL) Dim oTable = oResult.Table If Not oResult.OK Then ShowErrorMessage(New ApplicationException(oResult.ErrorMessage)) End If My.Channel.CloseDatabaseRequest() LoadControls(oTable) End Sub Private Sub LoadControls(Datatable As DataTable) For Each oRow As DataRow In Datatable.Rows Dim oEditor As BaseEdit = Nothing Dim oCaption As String = oRow.Item("COLNAME") Dim oControlType As String = oRow.Item("CTRLTYPE") Dim oControlId As String = oRow.Item("RECORD_ID").ToString Select Case oControlType Case CONTROL_TEXTEDIT Dim oTextEdit As New TextEdit() With {.Name = oControlId} oEditor = oTextEdit Case CONTROL_MEMOEDIT Dim oMemoEdit As New MemoEdit() With {.Name = oControlId} oEditor = oMemoEdit Case CONTROL_DATEEDIT Dim oDateEdit As New DateEdit() With {.Name = oControlId} oEditor = oDateEdit Case CONTROL_CHECKEDIT Dim oCheckEdit As New CheckEdit() With {.Name = oControlId} oEditor = oCheckEdit Case CONTROL_COMBOEDIT Dim oComboEdit As New ComboBoxEdit() With {.Name = oControlId} oEditor = oComboEdit Case Else End Select If oEditor Is Nothing Then Continue For End If LayoutControlGroupMain.AddItem(oCaption, oEditor) Next LayoutControlGroupMain.AddItem(New EmptySpaceItem()) End Sub End Class