1、ChartControl
顯示條形圖
ChartControl1.Titles.Clear() ChartControl1.Series.Clear() Dim db As DataTable SqlDataAdapter1.SelectCommand.CommandText =sqlstr db = New DataTable SqlDataAdapter1.Fill(db) Dim series1 As DevExpress.XtraCharts.Series = New DevExpress.XtraCharts.Series("", ViewType.Line) series1.DataSource = db‘綁定數據源 series1.ArgumentDataMember = "TimeStep" 'X軸顯示字段 series1.ValueDataMembers(0) =cbPara.Text ‘Y軸顯示字段 series1.Name = cbPara.Text ’圖例名稱 ChartControl1.Series.Add(series1) '標題 Dim chartTitle1 As New ChartTitle() chartTitle1.Text = cbPara.SelectedItem & "濃度變化曲線" chartTitle1.Antialiasing = True chartTitle1.Font = New Font("Tahoma", 14, FontStyle.Regular) chartTitle1.TextColor = Color.Black chartTitle1.Indent = 10 ChartControl1.Titles.Add(chartTitle1)
'添加x,y軸標題 Dim diam As DevExpress.XtraCharts.XYDiagram = New DevExpress.XtraCharts.XYDiagram diam.AxisX.Title.Text = "mg/L" diam.AxisY.Title.Text = "天" diam.AxisX.Title.Visible = True diam.AxisY.Title.Visible = True ChartControl1.Diagram = diam
’自定義標注 Y軸 xydiagram.AxisY.CustomLabels.AddRange({New CustomAxisLabel("一類", 1), New CustomAxisLabel("二類", 2), New CustomAxisLabel("三類", 3), New CustomAxisLabel("四類", 4), New CustomAxisLabel("五類", 6), New CustomAxisLabel("劣五類", 6)})
效果如下:
2、 GridControl
綁定代碼如下:
GridControl1.DataSource = db 'db是DataTable對象
自定義字段顯示如下圖:
去掉GroupPanel如下圖所示:
3、 WinForm的ComboBox自定義綁定數據
自已定義一個RiverData類的代碼:
Public Class RiverData Dim m_riverName As String Dim m_riverId As String Dim m_evtsimId As String Public Property RiverName Get Return m_riverName End Get Set(ByVal value) m_riverName = value End Set End Property Public Property RiverId Get Return m_riverId End Get Set(ByVal value) m_riverId = value End Set End Property Public Property EvtSimId Get Return m_evtsimId End Get Set(ByVal value) m_evtsimId = value End Set End Property End Class
綁定數據的代碼如下:
Dim m_river As RiverData = New RiverData m_river.RiverName = tName m_river.RiverId = tRiver cbSec.Items.Add(m_river) cbSec.DisplayMember = "RiverName" cbSec.ValueMember = "RiverId"
4、LabelControl
設置AutoSizeMode的屬性為Vertical,適當的Size,就可以實現文本的換行。
5、NavBarControl
For i As Integer = 0 To dt.Rows.Count - 1 Step 1 Dim NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup = New DevExpress.XtraNavBar.NavBarGroup '創建分組欄 NavBarGroup1.Caption = dt.Rows(i)(0).ToString() NavBarGroup1.Name = "NavBarGroup" + i.ToString() '站點信息 Dim navBarGroupControlContainer1 As NavBarGroupControlContainer = New NavBarGroupControlContainer '創建容器面板 For j As Integer = 1 To 9 Step 1 Dim lable1 As DevExpress.XtraEditors.LabelControl = New DevExpress.XtraEditors.LabelControl lable1.Location = New System.Drawing.Point(13, 24 * j - 8) Select Case j Case 1 lable1.Text = "XX: " lable1.Location = New System.Drawing.Point(13, 10) Case 2 lable1.Text = "XX: " Case 3 lable1.Text = "XX: " Case 4 lable1.Text = "XX: " Case 5 lable1.Text = "XX: " Case 6 lable1.Text = "XX: " Case 7 lable1.Text = "XX: " Case 8 lable1.Text = "XX: " Case 9 lable1.Text = "XX: " End Select lable1.Text += dt.Rows(i)(j).ToString() lable1.Name = "Lb_Title" + j.ToString lable1.Size = New System.Drawing.Size(37, 13) navBarGroupControlContainer1.Controls.Add(lable1) '容器面板添加Lable Next '創建內容面板 navBarGroupControlContainer1.Size = New System.Drawing.Size(235, 200) navBarGroupControlContainer1.ResumeLayout(False) navBarGroupControlContainer1.PerformLayout() NavBarGroup1.ControlContainer = navBarGroupControlContainer1 NavBarControl1.Controls.Add(navBarGroupControlContainer1) NavBarControl1.Groups.Add(NavBarGroup1) Next
效果圖如下:
6、ImageComboBoxEdit 用法
ImageComboBoxItem icbi = new ImageComboBoxItem(); icbi.Description ="aa"; icbi.Value =0; ImgComBox_Layers.Properties.Items.Add(icbi); ImgComBox_Layers.EditValue = 0;
7、AllowFormGlass屬性設置窗體的時候,使用的是RibbonForm窗體,但是標題欄沒有DEV的樣式效果,如下圖:
但是demo上有dev效果,如下圖:
后來對比發現是主窗體設計代碼少了一行代碼所致:
Me.AllowFormGlass = DevExpress.Utils.DefaultBoolean.[False]
dev幫助文檔解釋如下:
獲取或設置窗體的標題和邊框是否根據本地的Windows主題。
注意:如果加上上面代碼,添加ArcEngine控件的時候,調試程序會報錯->“未將對象引用到對象的實例”,具體問題原因還沒有找到,應該是個Bug,解決辦法:將ArcEngine控件放在Panel控件上就可以了。
8、For循環
For i As Integer = 0 To m_ZoomPopupMenu.ItemLinks.Count - 1 If TypeOf pItem Is DevExpress.XtraBars.BarButtonItem Then End If Next
9、動態生成DockPanel
執行代碼前:
執行代碼后:
生成DockPanel的代碼:
Dim QuikeSearchDock As DockPanel = MainFrom.MainDockManager.AddPanel(DockingStyle.Bottom) QuikeSearchDock.Show() If QuikeSearchDock.RootPanel IsNot QuikeSearchDock Then QuikeSearchDock.DockAsTab(QuikeSearchDock.RootPanel) Else Dim container As DockPanel = Nothing For Each container In MainFrom.MainDockManager.RootPanels If container.Dock = DockingStyle.Bottom Then container.Index = 0 '顯示新添加的tap Exit For End If Next If container IsNot Nothing Then QuikeSearchDock.DockAsTab(container) End If QuikeSearchDock.Dock = DevExpress.XtraBars.Docking.DockingStyle.Fill QuikeSearchDock.Text = title
10、TreeList
TreeList的節點也可以分列顯示,所以在使用的時候先要添加列,如下圖所示,右鍵控件,點擊Run Designer
然后就可以編寫代碼了
Public Function LoadControl(ByVal ErrFacs As List(Of ErrorFactor)) For i As Integer = 0 To ErrFacs.Count - 1 Dim errfac As ErrorFactor = ErrFacs(i) Dim errnode As TreeListNode = TreeList1.Nodes.Add(errfac.ErrName, Nothing) TreeList1.AppendNode(New Object() {errfac.ErrFieldName}, errnode) TreeList1.AppendNode(New Object() {errfac.ErrDescription}, errnode) Next End Function
ShowIndicator屬性,是否顯示指示器
設置前:
設置前效果:
設置后:
設置后效果:
11、XtraForm
繼承XtraForm 需要添加如下引用: