jj: first pass of entitydesigner

This commit is contained in:
Jonathan Jenne 2019-01-22 16:37:35 +01:00
parent 468faa37ea
commit 1e0bccdb48
12 changed files with 682 additions and 91 deletions

View File

@ -0,0 +1,18 @@
Public Class ClassUtils
''' <summary>
''' Generates a random short (8 characters) guid
''' </summary>
''' <returns>The generated guid as a String</returns>
Public Shared Function ShortGUID() As String
Return Guid.NewGuid().ToString().GetHashCode().ToString("x")
End Function
''' <summary>
''' Converts a String value to the given Enum
''' </summary>
''' <typeparam name="T">The Enum Type</typeparam>
''' <param name="value">The string value to convert</param>
Public Shared Function ToEnum(Of T)(value As String) As T
Return [Enum].Parse(GetType(T), value)
End Function
End Class

View File

@ -72,6 +72,7 @@
<Reference Include="DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="FirebirdSql.Data.FirebirdClient, Version=6.4.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL">
<HintPath>..\packages\FirebirdSql.Data.FirebirdClient.6.4.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath>
</Reference>
@ -165,6 +166,7 @@
<ItemGroup>
<Compile Include="ClassInit.vb" />
<Compile Include="ClassLayout.vb" />
<Compile Include="ClassUtils.vb" />
<Compile Include="Connected Services\NetworkService_DDEDM\Reference.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
@ -176,6 +178,14 @@
<Compile Include="DockManagerTest.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="EntityDesigner\ClassControlBuilder.vb" />
<Compile Include="EntityDesigner\ClassControlUtils.vb" />
<Compile Include="EntityDesigner\frmEntityDesigner.Designer.vb">
<DependentUpon>frmEntityDesigner.vb</DependentUpon>
</Compile>
<Compile Include="EntityDesigner\frmEntityDesigner.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmDashboard.Designer.vb">
<DependentUpon>frmDashboard.vb</DependentUpon>
</Compile>
@ -228,11 +238,17 @@
<Compile Include="UserControls\ProcessManagerOverview.vb">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\SnapPanel.vb">
<SubType>Component</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="DockManagerTest.resx">
<DependentUpon>DockManagerTest.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="EntityDesigner\frmEntityDesigner.resx">
<DependentUpon>frmEntityDesigner.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmDashboard.resx">
<DependentUpon>frmDashboard.vb</DependentUpon>
</EmbeddedResource>

View File

@ -0,0 +1,50 @@
Public Class ClassControlBuilder
#Region "State"
Private _DesignMode As Boolean
#End Region
#Region "Constants"
Private DEFAULT_SIZE As Size = New Size(200, 27)
Private DEFAULT_TEXT As String = "Unnamed Control"
#End Region
Public Sub New(DesignMode As Boolean)
_DesignMode = DesignMode
End Sub
Private Function GetRandomControlName(Name As String)
Return $"{Name}-{ClassUtils.ShortGUID()}"
End Function
Public Function CreateLabel() As Label
Dim Metadata As New ClassControlUtils.ControlMetadata() With {
.Id = 4711
}
Dim oLabel As New Label() With {
.Name = GetRandomControlName("Label"),
.Text = DEFAULT_TEXT,
.AutoSize = False,
.Size = DEFAULT_SIZE,
.Tag = Metadata
}
Return oLabel
End Function
Public Function CreateTextbox() As TextBox
Dim Metadata As New ClassControlUtils.ControlMetadata() With {
.Id = 4711
}
Dim oTextbox As New TextBox() With {
.Name = GetRandomControlName("Textbox"),
.Size = DEFAULT_SIZE,
.Tag = Metadata
}
Return oTextbox
End Function
End Class

View File

@ -0,0 +1,10 @@
Public Class ClassControlUtils
Public Enum ControlType
Label = 0
TextBox = 1
End Enum
Public Class ControlMetadata
Public Id As Integer
End Class
End Class

View File

@ -0,0 +1,146 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmEntityDesigner
Inherits DevExpress.XtraEditors.XtraForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Wird vom Windows Form-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl()
Me.PanelMain = New EDMI_ClientSuite.SnapPanel()
Me.TabControlDetail = New DevExpress.XtraTab.XtraTabControl()
Me.TabPageProperties = New DevExpress.XtraTab.XtraTabPage()
Me.PropertyGridControl1 = New DevExpress.XtraVerticalGrid.PropertyGridControl()
Me.TabPageControls = New DevExpress.XtraTab.XtraTabPage()
Me.btnTextbox = New System.Windows.Forms.Button()
Me.btnLabel = New System.Windows.Forms.Button()
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerMain.SuspendLayout()
CType(Me.TabControlDetail, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabControlDetail.SuspendLayout()
Me.TabPageProperties.SuspendLayout()
CType(Me.PropertyGridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabPageControls.SuspendLayout()
Me.SuspendLayout()
'
'SplitContainerMain
'
Me.SplitContainerMain.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainerMain.Location = New System.Drawing.Point(0, 0)
Me.SplitContainerMain.Name = "SplitContainerMain"
Me.SplitContainerMain.Panel1.Controls.Add(Me.PanelMain)
Me.SplitContainerMain.Panel1.Text = "Panel1"
Me.SplitContainerMain.Panel2.Controls.Add(Me.TabControlDetail)
Me.SplitContainerMain.Panel2.Text = "Panel2"
Me.SplitContainerMain.Size = New System.Drawing.Size(800, 450)
Me.SplitContainerMain.SplitterPosition = 583
Me.SplitContainerMain.TabIndex = 0
Me.SplitContainerMain.Text = "SplitContainerControl1"
'
'PanelMain
'
Me.PanelMain.AllowDrop = True
Me.PanelMain.Dock = System.Windows.Forms.DockStyle.Fill
Me.PanelMain.GridSize = 8
Me.PanelMain.Location = New System.Drawing.Point(0, 0)
Me.PanelMain.Name = "PanelMain"
Me.PanelMain.ShowGrid = True
Me.PanelMain.Size = New System.Drawing.Size(583, 450)
Me.PanelMain.TabIndex = 0
'
'TabControlDetail
'
Me.TabControlDetail.Dock = System.Windows.Forms.DockStyle.Fill
Me.TabControlDetail.Location = New System.Drawing.Point(0, 0)
Me.TabControlDetail.Name = "TabControlDetail"
Me.TabControlDetail.SelectedTabPage = Me.TabPageProperties
Me.TabControlDetail.Size = New System.Drawing.Size(205, 450)
Me.TabControlDetail.TabIndex = 1
Me.TabControlDetail.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.TabPageControls, Me.TabPageProperties})
'
'TabPageProperties
'
Me.TabPageProperties.Controls.Add(Me.PropertyGridControl1)
Me.TabPageProperties.Name = "TabPageProperties"
Me.TabPageProperties.Size = New System.Drawing.Size(203, 425)
Me.TabPageProperties.Text = "Properties"
'
'PropertyGridControl1
'
Me.PropertyGridControl1.Cursor = System.Windows.Forms.Cursors.Hand
Me.PropertyGridControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.PropertyGridControl1.Location = New System.Drawing.Point(0, 0)
Me.PropertyGridControl1.Name = "PropertyGridControl1"
Me.PropertyGridControl1.Size = New System.Drawing.Size(203, 425)
Me.PropertyGridControl1.TabIndex = 0
'
'TabPageControls
'
Me.TabPageControls.Controls.Add(Me.btnTextbox)
Me.TabPageControls.Controls.Add(Me.btnLabel)
Me.TabPageControls.Name = "TabPageControls"
Me.TabPageControls.Size = New System.Drawing.Size(262, 425)
Me.TabPageControls.Text = "Controls"
'
'btnTextbox
'
Me.btnTextbox.Location = New System.Drawing.Point(15, 48)
Me.btnTextbox.Name = "btnTextbox"
Me.btnTextbox.Size = New System.Drawing.Size(122, 23)
Me.btnTextbox.TabIndex = 1
Me.btnTextbox.Text = "Textbox"
Me.btnTextbox.UseVisualStyleBackColor = True
'
'btnLabel
'
Me.btnLabel.Location = New System.Drawing.Point(15, 19)
Me.btnLabel.Name = "btnLabel"
Me.btnLabel.Size = New System.Drawing.Size(122, 23)
Me.btnLabel.TabIndex = 0
Me.btnLabel.Text = "Label"
Me.btnLabel.UseVisualStyleBackColor = True
'
'frmEntityDesigner
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.SplitContainerMain)
Me.Name = "frmEntityDesigner"
Me.Text = "Entitäten Designer"
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainerMain.ResumeLayout(False)
CType(Me.TabControlDetail, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabControlDetail.ResumeLayout(False)
Me.TabPageProperties.ResumeLayout(False)
CType(Me.PropertyGridControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabPageControls.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl
Friend WithEvents TabControlDetail As DevExpress.XtraTab.XtraTabControl
Friend WithEvents TabPageProperties As DevExpress.XtraTab.XtraTabPage
Friend WithEvents PropertyGridControl1 As DevExpress.XtraVerticalGrid.PropertyGridControl
Friend WithEvents TabPageControls As DevExpress.XtraTab.XtraTabPage
Friend WithEvents PanelMain As SnapPanel
Friend WithEvents btnTextbox As Button
Friend WithEvents btnLabel As Button
End Class

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,128 @@

Public Class frmEntityDesigner
Private _IsMouseDown As Boolean = False
Private _IsMouseMoving As Boolean = False
Private _BeginPosition As Point = Nothing
Private _EndPosition As Point = Nothing
Private _LastCursorPosition As Point = Nothing
Private _CurrentControl As Control = Nothing
Private _ControlBuilder As ClassControlBuilder = Nothing
Private Sub frmEntityDesigner_Load(sender As Object, e As EventArgs) Handles Me.Load
' Assign Control Types to DragDrop Buttons
btnLabel.Tag = ClassControlUtils.ControlType.Label
btnTextbox.Tag = ClassControlUtils.ControlType.TextBox
_ControlBuilder = New ClassControlBuilder(DesignMode:=True)
End Sub
#Region "Control Buttons Events"
Private Sub btnControl_MouseDown(sender As Object, e As MouseEventArgs) Handles btnLabel.MouseDown, btnTextbox.MouseDown
_IsMouseDown = True
End Sub
Private Sub btnControl_MouseMove(sender As Button, e As MouseEventArgs) Handles btnLabel.MouseMove, btnTextbox.MouseMove
If _IsMouseDown Then
Dim oButton = sender
Dim oType As ClassControlUtils.ControlType = oButton.Tag
oButton.DoDragDrop(oType.ToString, DragDropEffects.Copy)
End If
End Sub
Private Sub SnapPanelMain_DragEnter(sender As Object, e As DragEventArgs) Handles PanelMain.DragEnter
If (e.Data.GetDataPresent(DataFormats.Text)) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub SnapPanelMain_DragDrop(sender As Object, e As DragEventArgs) Handles PanelMain.DragDrop
Dim data As String = e.Data.GetData(DataFormats.Text)
Dim type = ClassUtils.ToEnum(Of ClassControlUtils.ControlType)(data)
HandleDragDrop(type)
End Sub
#End Region
#Region "Control Events"
Private Sub Control_MouseDown(sender As Control, e As MouseEventArgs)
If e.Button = MouseButtons.Left Then
_CurrentControl = sender
_BeginPosition = e.Location
' Set the mode flag to signal the MouseMove event handler that it
' needs to now calculate new positions for our control
_IsMouseMoving = True
End If
End Sub
Private Sub Control_MouseMove(sender As Control, e As MouseEventArgs)
If _CurrentControl Is Nothing Or Not _IsMouseMoving Then
Exit Sub
End If
Cursor = Cursors.Hand
Dim oControl = sender
Dim oCursorPosition As Point = PanelMain.PointToClient(Cursor.Position)
Dim oNewPosition As New Point(oCursorPosition.X - _BeginPosition.X, oCursorPosition.Y - _BeginPosition.Y)
' If control will be moved out the of bounds of the panel at TOP/LEFT side, exit.
If oNewPosition.X < 0 Or oNewPosition.Y < 0 Then
Exit Sub
End If
oControl.Location = oNewPosition
End Sub
Private Sub Control_MouseUp(sender As Object, e As MouseEventArgs)
If Not _IsMouseMoving Then
Exit Sub
End If
_IsMouseMoving = False
_EndPosition = e.Location
Cursor = Cursors.Default
End Sub
Private Sub SetEventHandlers(Control As Control)
AddHandler Control.MouseDown, AddressOf Control_MouseDown
AddHandler Control.MouseMove, AddressOf Control_MouseMove
AddHandler Control.MouseUp, AddressOf Control_MouseUp
End Sub
#End Region
Private Sub HandleDragDrop(type As ClassControlUtils.ControlType)
Dim oCursorPosition As Point = PanelMain.PointToClient(Cursor.Position)
Dim oControl As Control = Nothing
Select Case type
Case ClassControlUtils.ControlType.Label
oControl = _ControlBuilder.CreateLabel()
Case ClassControlUtils.ControlType.TextBox
oControl = _ControlBuilder.CreateTextbox()
Case Else
MsgBox($"Unknown Control Type {type.ToString}")
Exit Sub
End Select
' Set Location to current cursor position
oControl.Location = oCursorPosition
' Attach Eventhandlers
SetEventHandlers(oControl)
' Add the control to the panel
PanelMain.Controls.Add(oControl)
End Sub
End Class

View File

@ -1,5 +1,6 @@
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraTabbedMdi.XtraTabbedMdiManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraVerticalGrid.PropertyGridControl, DevExpress.XtraVerticalGrid.v18.1, Version=18.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -0,0 +1,56 @@
Public Class SnapPanel
Inherits Panel
Private _ShowGrid As Boolean = True
Private _GridSize As Integer = 16
Private Property AutoScaleMode As AutoScaleMode
Public Property GridSize As Integer
Get
Return _GridSize
End Get
Set(value As Integer)
_GridSize = value
Refresh()
End Set
End Property
Public Property ShowGrid As Boolean
Get
Return _ShowGrid
End Get
Set(value As Boolean)
_ShowGrid = value
Refresh()
End Set
End Property
Protected Overrides Sub OnControlAdded(e As System.Windows.Forms.ControlEventArgs)
AddHandler e.Control.LocationChanged, AddressOf AlignToGrid
AddHandler e.Control.DragDrop, AddressOf AlignToGrid
MyBase.OnControlAdded(e)
End Sub
Protected Overrides Sub OnControlRemoved(e As System.Windows.Forms.ControlEventArgs)
RemoveHandler e.Control.LocationChanged, AddressOf AlignToGrid
RemoveHandler e.Control.DragDrop, AddressOf AlignToGrid
MyBase.OnControlRemoved(e)
End Sub
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
If _ShowGrid Then
ControlPaint.DrawGrid(e.Graphics, ClientRectangle, New Size(_GridSize, _GridSize), BackColor)
End If
MyBase.OnPaint(e)
End Sub
Private Sub AlignToGrid(sender As Object, e As EventArgs)
If _ShowGrid Then
Dim item As Control = CType(sender, Control)
Dim x As Integer = Math.Round(item.Left / _GridSize) * _GridSize
Dim y As Integer = Math.Round(item.Top / _GridSize) * _GridSize
item.Location = New Point(x, y)
End If
End Sub
End Class

View File

@ -32,11 +32,18 @@ Partial Class frmMain
Me.BarButtonDock1 = New DevExpress.XtraBars.BarButtonItem()
Me.SkinDropDownButtonItem1 = New DevExpress.XtraBars.SkinDropDownButtonItem()
Me.BarButtonDashboard = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonEntityDesigner = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonDeleteControl = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPageCategoryEntityDesigner = New DevExpress.XtraBars.Ribbon.RibbonPageCategory()
Me.RibbonPageControlActions = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup5 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageStart = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageView = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageWorkflow = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.DocumentManager = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components)
Me.TabbedView1 = New DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(Me.components)
@ -48,9 +55,6 @@ Partial Class frmMain
Me.DockPanelProcessManager = New DevExpress.XtraBars.Docking.DockPanel()
Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer()
Me.ProcessManagerOverview = New EDMI_ClientSuite.ProcessManagerOverview()
Me.RibbonPageWorkflow = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
CType(Me.RibbonControl, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.MainMenu, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DocumentManager, System.ComponentModel.ISupportInitialize).BeginInit()
@ -67,10 +71,11 @@ Partial Class frmMain
'
Me.RibbonControl.ApplicationButtonDropDownControl = Me.MainMenu
Me.RibbonControl.ExpandCollapseItem.Id = 0
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.BarButtonDock1, Me.SkinDropDownButtonItem1, Me.BarButtonDashboard, Me.BarButtonItem2})
Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.BarButtonExit, Me.BarButtonUserSettings, Me.LabelCurrentUser, Me.LabelCurrentMachine, Me.LabelCurrentVersion, Me.BarButtonItem1, Me.BarButtonDock1, Me.SkinDropDownButtonItem1, Me.BarButtonDashboard, Me.BarButtonEntityDesigner, Me.BarButtonDeleteControl})
Me.RibbonControl.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl.MaxItemId = 13
Me.RibbonControl.MaxItemId = 14
Me.RibbonControl.Name = "RibbonControl"
Me.RibbonControl.PageCategories.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageCategory() {Me.RibbonPageCategoryEntityDesigner})
Me.RibbonControl.PageHeaderItemLinks.Add(Me.SkinDropDownButtonItem1)
Me.RibbonControl.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageStart, Me.RibbonPageView, Me.RibbonPageWorkflow})
Me.RibbonControl.Size = New System.Drawing.Size(1139, 146)
@ -144,6 +149,43 @@ Partial Class frmMain
Me.BarButtonDashboard.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonDashboard.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonDashboard.Name = "BarButtonDashboard"
'
'BarButtonEntityDesigner
'
Me.BarButtonEntityDesigner.Caption = "Entitäten Designer"
Me.BarButtonEntityDesigner.Id = 12
Me.BarButtonEntityDesigner.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image)
Me.BarButtonEntityDesigner.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonEntityDesigner.Name = "BarButtonEntityDesigner"
'
'BarButtonDeleteControl
'
Me.BarButtonDeleteControl.Caption = "Delete Control"
Me.BarButtonDeleteControl.Id = 13
Me.BarButtonDeleteControl.ImageOptions.Image = CType(resources.GetObject("BarButtonDeleteControl.ImageOptions.Image"), System.Drawing.Image)
Me.BarButtonDeleteControl.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonDeleteControl.ImageOptions.LargeImage"), System.Drawing.Image)
Me.BarButtonDeleteControl.Name = "BarButtonDeleteControl"
'
'RibbonPageCategoryEntityDesigner
'
Me.RibbonPageCategoryEntityDesigner.AutoStretchPageHeaders = True
Me.RibbonPageCategoryEntityDesigner.Name = "RibbonPageCategoryEntityDesigner"
Me.RibbonPageCategoryEntityDesigner.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPageControlActions})
Me.RibbonPageCategoryEntityDesigner.Text = "Entitäten Designer"
Me.RibbonPageCategoryEntityDesigner.Visible = False
'
'RibbonPageControlActions
'
Me.RibbonPageControlActions.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup5})
Me.RibbonPageControlActions.Name = "RibbonPageControlActions"
Me.RibbonPageControlActions.Text = "Control Actions"
Me.RibbonPageControlActions.Visible = False
'
'RibbonPageGroup5
'
Me.RibbonPageGroup5.ItemLinks.Add(Me.BarButtonDeleteControl)
Me.RibbonPageGroup5.Name = "RibbonPageGroup5"
Me.RibbonPageGroup5.Text = "RibbonPageGroup5"
'
'RibbonPageStart
'
Me.RibbonPageStart.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup3})
@ -174,6 +216,18 @@ Partial Class frmMain
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
'
'RibbonPageWorkflow
'
Me.RibbonPageWorkflow.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup4})
Me.RibbonPageWorkflow.Name = "RibbonPageWorkflow"
Me.RibbonPageWorkflow.Text = "Workflow"
'
'RibbonPageGroup4
'
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonEntityDesigner)
Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
Me.RibbonPageGroup4.Text = "RibbonPageGroup4"
'
'RibbonStatusBar
'
Me.RibbonStatusBar.ItemLinks.Add(Me.LabelCurrentUser)
@ -276,24 +330,6 @@ Partial Class frmMain
Me.ProcessManagerOverview.Size = New System.Drawing.Size(337, 163)
Me.ProcessManagerOverview.TabIndex = 0
'
'RibbonPageWorkflow
'
Me.RibbonPageWorkflow.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup4})
Me.RibbonPageWorkflow.Name = "RibbonPageWorkflow"
Me.RibbonPageWorkflow.Text = "Workflow"
'
'RibbonPageGroup4
'
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
Me.RibbonPageGroup4.Text = "RibbonPageGroup4"
'
'BarButtonItem2
'
Me.BarButtonItem2.Caption = "Entitäten Designer"
Me.BarButtonItem2.Id = 12
Me.BarButtonItem2.Name = "BarButtonItem2"
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -352,5 +388,9 @@ Partial Class frmMain
Friend WithEvents ProcessManagerOverview As ProcessManagerOverview
Friend WithEvents RibbonPageWorkflow As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonEntityDesigner As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageCategoryEntityDesigner As DevExpress.XtraBars.Ribbon.RibbonPageCategory
Friend WithEvents RibbonPageControlActions As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup5 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonDeleteControl As DevExpress.XtraBars.BarButtonItem
End Class

View File

@ -340,72 +340,75 @@
</data>
<data name="BarButtonDashboard.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAt0RVh0VGl0
bGUASG9tZTsedGQ4AAADTElEQVQ4T22Tf0zMYRzHH2U2y6/Mj0jJUFMMU+bXJvNPE5IsM2pS8qPzI45K
SUsqtX5wqlFZQpcpXel0aqHGHw0TM9EVd3Xuru5Xdd/73g/l7fl++SPju72+n2ff53m/nuezZ19yrWUL
KWwO/M3TQFIgCyT0mXD5wUb/gqZA5FOiC+cF0G/OFKc/TDhe7k7iytwJGXDUE61dQjS2OqK21tI54pRY
7r+2pDUESstddJmvIqV6JdJvlr3Nu/0GOaWvkS569ZxbFyOaT4jKKiZK6z2iZCv58Kkbq9cWSIMgNxfj
cK4/oq4uR4f+PIQVvpC2ScAwLM5nPwNdOzEyZx4hPUwJ6WaKuLBzTJbfuqyaLXhvysT2s54orryDtOvp
CDrthmeaKAhKvNHQWofT6U85waS9l90IeWfK4MP7kpduuHh/Azp057BT6Imy6vvoVQzgc68at6ruYVv8
XNQrghFdsAjRF0ScwGVXMhVw4Z0nvDYJS9fghfYwdiV4oqLmAVQaI0Ysdgwzdnzt0+NWtRjBZ+aiSr4e
EdkeCNjjupVmJ5Kg2AWbBKIVeNIfhtCkBbgreYh+tQlDjAMm8w8YKYZhKlHqUSquppLZKP/si/A0NwTs
nrGZRGZ6QVDsg4grCyFrk0KpHoJhyAH98G90lAGTHRqDDXKFEY+aJQhP8cTBXA/sueDBtUImU+YIUutg
YVlojXYacOBRmPtfqHQ2KAes0BnNOCQUc0F6BcSFlHUt4yQuqYUvMTb2E9/1dqj0NtTt9QDTWQTmnYgf
qw20DY2VtuRAfEYLJ5gG0FLycSEnmJKc18YLuF2+aa1oOLAYIx3ZMDTGoGH/Yl7wpZ/FIG3vZBp/jdN5
Af+itoSc53CM/kSPmoX8OwtplA+G2pKhq4+kY2/0DdrwUWHhRXGpTVzIdbxgujCzFVb7GLr6LPiktEAW
6wejTIDBmnDIjvrxp+r8ykBB67GUJ1xo5njBjPiMZoywo/hAd3n/jUFL3EroJZHQikPoeBV66cneyM3o
VrGITZL+I3A5klD78kSaDIJLMsRdbML1MB8UhnojP8QbuTuW4EhSI2ITHyMmsRERp6pe0czU8QLuV53S
3t6+mdZZf5j9H+ZQuLlpFGcA5Bf/aUmHDJTX8gAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBIb21lOx50
ZDgAAADUSURBVDhPnZE9DoJAEIWxtfFkJl7AOwCNHQlmW6O30cTCRlAvY/zDdpw3YcgusLCx+GB4O+9L
yEbGGB8TZsPkms3XBwL6DZqhBcpbBstAJKECu3xkynrOuZyNCdrlKTNjHAm/m85YWc8gKVZmJxIrbwRD
ZUUkjCPBI6SsdCQIcVUIwFBZgUT3MwRLZl8HuqQLbezzE7PQAL/hLFTXhB5FKnwuSZ8AHecWnIU3l+7n
VHiVvQKZIyIS7BDz9xbTs0yF6hp3BNrzCjwEC8bwCoLpCP6Doh9wyB/S6rhfgQAAAABJRU5ErkJggg==
</value>
</data>
<data name="BarButtonDashboard.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
rkJggg==
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAC3RFWHRUaXRsZQBIb21lOx50
ZDgAAAE6SURBVFhH7ZLNDcIwDEZBzMUIcO8CDMAIVSfgR+KEhIAZYADm4cIVEeyqrpzETts0lEsPT22+
2vkeEhNjzF+pX4qiiGFaIX0LkkJgBpyBA9BZoq8All8BU9FZoo+AWy5KLPK74VBOxApo5UQt8QsBqXwH
nJyslIDSV0oBrRx/LX7zJJb5bc4lILPu7CIQKuczQQk48ztbC0jlW0D6xwcl4N2abyPQpZxQJeBpzTYJ
xJQTogRg7YYE+pQTjRKaQIpyIighCaQsJ1QJSeDChpC+5YQksZcEVsCHDaUoJ1CC7n0DmSSAoMQGwEF+
AUGXNKHtHoEMz5oAH3azMn8+1kFwxtmpd/nZE+DQsJRLpRyccfcQLfcCZBQYBUICbXD3EC33AqS6SPwW
yygQI5ActwfxgqERwyERw+Ewky+3HJlMr7zcTAAAAABJRU5ErkJggg==
</value>
</data>
<data name="BarButtonItem2.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAADXRFWHRUaXRsZQBXaXphcmQ7
ySU3BgAAATVJREFUOE+lk81Kw0AURoOv1Bdw5c6HKCiIPwh9ABcSxIUE1KUrdyriSsuAgmIUBBHcuBJ3
Ndg0VNuFiE3m897pJM4k0yB44Esmyb1nZkLiAfhXioHv+6iJ1OeG2cyxBAVS6sEv/DwIgpeyxOscNKco
MzJLuQ6jQYT4YkONTfQE32WJOpDgMTpZRhLu4vVoHnTNxRYsMENYgp1YLKF3voJ+2ELnsAmZjbjIiUsQ
xGIR/ZuWytvpgtpG9jXkwgqWgJqnKWlyuVoIeDXR8RyS621ayfjdmJQFm5R2V6ypmbttWsndHkT4gOdo
wIUVKlsYR6J3taVe4tntExdgdl04JU4B30w/P/B+v6+auJlxSSYKFPojqpPUCwxySZ5c8mcBM0lCVAWu
MGWJxhaYoSJXGhQWGD8TvB9sYiYvp9hqZQAAAABJRU5ErkJggg==
</value>
</data>
<data name="BarButtonItem2.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAADXRFWHRUaXRsZQBXaXphcmQ7
ySU3BgAAAjpJREFUWEfFlE1LW0EUht2U4i/oX3DXhav+BaH/wE0Fq6G1opsq3Uk2IsFNt6HgqoVSWzV+
YKuiblqE2m0lFqlNriYmCCaSmOT4niQj9+N478w13r7wMHdOZuY8XCa3i4j+K2IxSsRilIjFKBGLing8
Tob8BX2A93qQeohFBTZh0A+vTyQSV8lksg9T91mOuUIsKsIIpNNpUSIyAY4kcWeBSu53++n22Ne7JbQE
jt8/6wePbDVqVMtU3Juj4w8DPPWNXYDTlqiyhK7ACqiBDRArH32n7JdxOknFCHMs8Y9bgKMk8JvnYjKO
CZpMcLPct1dkLQ1TdmGI8ngu7I5rC/iQwRJHP8YxQZMnmU+DzYZudAT8whKIox/jmKDJA3BZ2BnzCPAb
Kf54R416DUvNoyswaC0Oe5orWCK3MU31ygWWmyVQAM17QCm/OSo2Z/Jbo3SyHCMrNUG1izy26cdXAI0f
gv3T1ReUWx+5uXiK07WXxHfDSk3S+a+PVC38wTazBAk8BjMgCebBNmgoAf4GVM4OsZTo6dRqczSN1h2w
A4G3Fv8lv+KNbM+i1MpB5rwpwaNJwgh0W8tvKPv5OV3+++loGkbCWICpFo9w81/je1zHtPX6w0qEEgBU
K53x0Iy7qYlEKIH2JkfCSnRMgGNvyqPCT6KjAhx38yCJjgtwTCTuRYCjKxFaIAhOkIRtraeHp3AbODCI
XiCJ9ErnKcSiBA7SQZRwn2VHLErgIF3cEpG+AYWS4FE8rwV1XQOqvYU8ut/neQAAAABJRU5ErkJggg==
</value>
</data>
<data name="BarButtonDeleteControl.ImageOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS
aWJib247U3RhbmRhcmQ7Y1ZIMAAAAMJJREFUOE+Nk0sKAjEQRHM4YVZ6CS8gfhBGHK/pSRRXbRWkJOlO
q4sHSf0YBlLMrNy3qzWYef4HZC/s8KzyCxi4+rAHmVvNsrOhcKqCSEfgqSz2Ms7OCCPQfPlIvQ2kIzgP
y+QzUIN+ZAFpmXQDBAE/0tKVSXcRCI5GQpkEgSDsP5sso2wQEByVRRjpLgj48gGEH9t2vpYbLx35WRbQ
hiM0+DBaI5QFPD8yU5zAowppWSCjkSeYJHJk58MZyPIBTmZW3tJAnMwmSptiAAAAAElFTkSuQmCC
</value>
</data>
<data name="BarButtonDeleteControl.ImageOptions.LargeImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAApdEVYdFRpdGxlAFJlbW92ZTtEZWxldGU7QmFycztS
aWJib247U3RhbmRhcmQ7Y1ZIMAAAAW5JREFUWEfFlk1KBDEUhGfmAg56JTcuHEGP4FFFFMVZz1Vcxaom
D57pek1ehLj4FilSP9Dd0LtSyr8ixZlIcSZSvDzf/okm6+DPLVKsQVfgBdzVczcu5x68gqPP90gRBpZ/
gAK+QWpEzWA5vcz4BHLESsDFA+BqGo3sCF9uMHPf9v06GLj4BNqA3hGqnOcH1bUSCC6Tx2psg7ZGpMqJ
FGEwMiPS5USKMHl6RgyVEynC2LI1YricSBFmRTRiuJxIEQERaoQnVU6kiJAtohFLOZCZEVJkyAbqmduA
5cVUmRFSZEhAVG4sI1RmhBQRoojedqV1j5AiAnrL+czDT1Rlt0gR5t5yuzM8QoowZsqNoRFShIlE5Sfg
iz3pEVKEYaTcSI1YCbi4B2/V6AN6yg014h10/5Bcg69qzJZbhh9xBjdtD1kJBJcJR3B1qpy4HI5ghiwn
UrQgwP9Df+6iycr/ls9EijOR4kykOBMpzqPsfgDZ5w1jF/MagwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="DocumentManager.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -88,7 +88,10 @@ Public Class frmMain
frm.Show()
End Sub
Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
Private Sub BarButtonEntityDesigner_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonEntityDesigner.ItemClick
Dim frm As New frmEntityDesigner()
frm.MdiParent = DocumentManager.MdiParent
frm.Show()
RibbonPageCategoryEntityDesigner.Visible = True
End Sub
End Class