DotNetBar第三方控件使用筆記_第1頁
DotNetBar第三方控件使用筆記_第2頁
DotNetBar第三方控件使用筆記_第3頁
DotNetBar第三方控件使用筆記_第4頁
DotNetBar第三方控件使用筆記_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

DotNetBar第三方控件使用筆記DotNetBar第三方控件使用筆記/NUMPAGES139DotNetBar第三方控件使用筆記DotNetBar第三方控件使用筆記DotNet第三方控件使用筆記ButtonX控件可實現(xiàn)如下效果:(1)在ButtonX上,是否顯示圖像,取決于“images”屬性。(2)在“ButtomItem”控件中,是否“只是顯示圖像”,“只是文本”,還是“圖像和文本都顯示”,取決于。BalloonTip控件(氣泡提示)在添加了BalloonTip控件后,其他各個控件會出現(xiàn)對應的“……上的BalloonText”和“……上的BalloonCaption”屬性,通過修改這兩個屬性可設置鼠標移動到控件時彈出的氣泡提示的標題和內(nèi)容,也可通過代碼設置這個兩個屬性,如:balloonTip1.SetBalloonCaption(txtUserName,"提示");

balloonTip1.SetBalloonText(txtUserName,"輸入你的大名吧");

balloonTip1.SetBalloonCaption(txtUserPw,"提示;

balloonTip1.SetBalloonText(txtUserPw,"大名輸完了就是你的密碼咯");")使用效果效果一:在鼠標在控件上面停留時,出現(xiàn)提示信息,如下圖:效果二:當控件獲得焦點時,也出現(xiàn)如上圖一樣的信息。實現(xiàn)上述兩種效果的途徑將BalloonTip控件的“ShowBalloonOnFacus”屬性設置為“False”即可實現(xiàn)效果一。設置BalloonTip顯示的內(nèi)容將“ShowBalloonOnFacus”屬性設置為“True”,即可實現(xiàn)效果二。在欲設置該屬性的控件的“BalloonTipOnFocus上的BalloonCaption”和“BalloonTipOnHover上的BalloonCaption”屬性中,分別設置這兩種效果的“標題”屬性;在“BalloonTipOnFocus上的BalloonText”和在“BalloonTipOnHover上的BalloonText”屬性中,分別設置這兩種效果的“顯示內(nèi)容”的屬性。屬性“AlerAnimation”設置“BalloonTip”出現(xiàn)的效果“BalloonTip”除了出現(xiàn)在該控件附近,還可以出現(xiàn)在屏幕的右下角,示例程序如下:privateAlertCustomm_AlertOnLoad=null;m_AlertOnLoad=newAlertCustom();Rectangler=Screen.GetWorkingArea(this);m_AlertOnLoad.Location=newPoint(r.Right-m_AlertOnLoad.Width,r.Bottom-m_AlertOnLoad.Height);m_AlertOnLoad.AutoClose=true;m_AlertOnLoad.AutoCloseTimeOut=15;m_AlertOnLoad.AlertAnimation=eAlertAnimation.BottomToTop;m_AlertOnLoad.AlertAnimationDuration=300;m_AlertOnLoad.Show(false);//false指示該控件是否需要獲得焦點才出現(xiàn)“BalloonTip”“BalloonTip”除了可以通過“添加控件”的方式使用,也可以通過編程的方式使用,示例程序如下:DevComponents.DotNetBar.Balloonb=newDevComponents.DotNetBar.Balloon();b.Style=eBallonStyle.Alert;asImage;b.CaptionText="BalloonStatusInFormation";b.Text="BalloonsarenowenabledforBalloonTipTestarea.Hovermouseovertheareaandsetthefocustoanycontrol.";b.AlertAnimation=eAlertAnimation.TopToBottom;b.AutoResize();b.AutoClose=true;b.AutoCloseTimeOut=4;b.Owner=this;//指示父控件b.Show(button2,false);//button2指示在那個控件附近出現(xiàn)“BalloonTip”還可以對“BalloonTip”出現(xiàn)時的效果進行程序控制,如下://BalloonTriggerControlpropertyreturnscontrolthatinvokedballoon//BalloonTriggerControl屬性返回觸發(fā)“BalloonTip”的控件if(balloonTipHover.BalloonTriggerControl==groupBox1){ //BalloonControlisalreadypreparedBallooncontrolthatisjustabouttobedisplayed //SettingBalloonControltonullwillcancelballoondisplay Pointp=Control.MousePosition; //Adjustcursorpositionsocursorisbelowtip,//Offset屬性將點p進行平移 }與之類似的是DotNetToolTip所有控件都有的“ToolTip”屬性,也可以是控件在鼠標劃過時出現(xiàn)類似的東西,如下圖:DotNetBarManager控件與Bar控件的使用示例效果如下圖:DotNetBarManager控件 將該控件添加到工程后,將給Bar控件提供了“??奎c(DockSite)”,可以實現(xiàn)工具欄在窗體的“上、下、左、右”擺放。 可以通過程序?qū)崿F(xiàn),也可以通過“屬性頁”的“Dock”屬性進行設置。 bar.DockSide=eDockSide.Top;DotNetBarManager控件,通過右鍵菜單可以輕松實現(xiàn)如下圖所示的布局。通過拖動也可以輕易的實現(xiàn)如下視圖的布局與上圖相應的代碼://CreatenewdocumentandaddittoexistingbarDevComponents.DotNetBar.DockContainerItemDockItem=newDevComponents.DotNetBar.DockContainerItem();DockItem.Text="CustomDocument";//AddcontroltoitTextBoxt=newTextBox();t.Autosize=false;t.Multiline=true;t.Text=DockItem.Text;//PanelDockContainerwillbeusedtohostanycontrols.Itprovidesautomaticfocusmanagementsofocused//documenttabappearsboldDevComponents.DotNetBar.PanelDockContainerpanel=newDevComponents.DotNetBar.PanelDockContainer();t.Dock=DockStyle.Fill;DockItem.Control=panel;DockItem);//添加第二個選項卡/****************************************************************************************************/DevComponents.DotNetBar.DockContainerItemDockItem1=newDevComponents.DotNetBar.DockContainerItem();DockItem1.Text="Thisisthesecond!";Labell=newLabel();l.Text=DockItem1.Text;DevComponents.DotNetBar.PanelDockContainerpanel1=newDevComponents.DotNetBar.PanelDockContainer();l.Dock=DockStyle.Fill;panel1.Controls.Add(l);DockItem1.Control=panel1;bar1.Items.Add(DockItem1);/****************************************************************************************************/if(!bar1.Visible)bar1.Visible=true;elsebar1.RecalcLayout();//OptimizedisplaybydisablinglayoutforallDocksitesdotNetBarManager1.SuspendLayout=true;try{foreach(DevComponents.DotNetBar.BarbarindotNetBarManager1.Bars){if(bar.DockSide==DevComponents.DotNetBar.eDockSide.Document){foreach(DevComponents.DotNetBar.DockContainerItemDockinbar.Items)Dock.Visible=true;}if(!bar.Visible)bar.Visible=true;}}finally{dotNetBarManager1.SuspendLayout=false;}代碼實現(xiàn)的界面如下圖:下面的代碼通過編程的方式實現(xiàn)如下圖所示的功能privatevoidForm1_Load(objectsender,System.EventArgse){dotNetBarManager1.DockTabChange+=newDotNetBarManager.DockTabChangeEventHandler(this.DockTabChanged);CreateBottomBarAutoHide();CreateLeftDockedBars();}privatevoidDockTabChanged(objectsender,DockTabChangeEventArgse){//使Bar的標題與當前??窟x項卡同步Barbar=senderasBar;if(bar==null||e.NewTab==null)return;}privatevoidCreateBottomBarAutoHide(){Barbar=newBar("BottomBarinauto-hidestate");bar.Name="bottomBar";bar.LayoutType=eLayoutType.DockContainer;//??咳萜鞑季中枰赏?看翱赽ar.Stretch=true;//可??看翱诶熘撂钛a容器bar.AutoHideAnimationTime=0;//一些控件不支持動畫所以關掉它bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可??看翱谟袠祟}//DotNetBar需要添加bar以便能管理它的??康?/創(chuàng)建托管控件DockContainerItemDockItem=newDockContainerItem("bottomDockItem1","FirstDockitem");DockItem);//創(chuàng)建我們想放在可??看翱诘目丶serControl1DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Azure;DockItem.Control=DockedControl;//指定該控件是托管在停靠容器上DockItem.Height=128;//指定可??咳萜鞯母叨群屯粫r間控制//創(chuàng)建第二個??咳萜鞑⑻砑拥紹ar中DockItem=newDockContainerItem("bottomDockItem2","SecondDockitem");DockItem);DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Aquamarine;DockItem.Control=DockedControl;//指定該控件是托管在??咳萜魃?/將Bar停靠到下面的??课恢胐otNetBarManager1.BottomDockSite.GetDocumentUIManager().Dock(bar);DockItem.Height=128;//指定可??咳萜鞯母叨群屯粫r間控制bar.RecalcLayout();//適用所有的變化...bar.AutoHide=true;//將Bar置為自動隱藏模式。Bar需要??康牡胤剑拍苤脼樽詣与[藏模式}privatevoidCreateLeftDockedBars(){//將前兩個Bar并排??坎⒌谌齻€Bar??吭谒麄冎?..Barbar=newBar("Bar1");bar.Name="leftBar1";bar.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可??看翱赽ar.Stretch=true;//可停靠窗口拉伸至填補容器bar.AutoHideAnimationTime=0;//一些控件不支持動畫所以關掉它bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可??看翱谟袠祟}bar.CanHide=true;//為Bar創(chuàng)建DockContainerItem,該項應該在Bar??壳疤砑覦ockContainerItemDockItem=newDockContainerItem("leftDockItem1","TopLeftDockContainer");DockItem);//創(chuàng)建我們想放在可停靠窗口的控件UserControl1DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Khaki;DockItem.Control=DockedControl;//指定該控件是托管在??咳萜魃?/DotNetBar需要添加bar以便能管理它的停靠等dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);//將Bar??康阶筮叺目赏?课恢肈ockItem.Width=128;//在??恐笾付ㄍ?咳萜黜椀膶挾?/創(chuàng)建第二個Bar并將它??康陀诘谝粋€Bar但仍在同一行Barbar2=newBar("Bar2");bar2.Name="leftBar2";bar2.LayoutType=eLayoutType.DockContainer;//停靠容器布局需要可??看翱赽ar2.AutoHideAnimationTime=0;//一些控件不支持動畫所以關掉它bar2.Stretch=true;//可停靠窗口拉伸至填補容器bar2.CanHide=true;bar2.GrabHandleStyle=eGrabHandleStyle.Caption;//可??看翱谟袠祟}//添加新的??咳萜鞯紹ar上,應該在添加Bar之前執(zhí)行以便大小可以計算正確DockItem=newDockContainerItem("leftDockItem2","BottomLeftDockContainer");DockItem);//創(chuàng)建我們想放在可停靠窗口的控件DockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.Lavender;DockItem.Control=DockedControl;//指定該控件是托管在??咳萜魃?/DotNetBar需要添加bar以便能管理它的停靠等dotNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar,bar2,eDockSide.Bottom);//停靠新bar2低于我們先前創(chuàng)建的Bar//創(chuàng)建第三個Bar,??吭诘谝粋€和第二個之后//i.e.ontheline1bar=newBar("Bar3");bar.Name="leftBar3";bar.LayoutType=eLayoutType.DockContainer;//??咳萜鞑季中枰赏?看翱赽ar.AutoHideAnimationTime=0;//一些控件不支持動畫所以關掉它bar.Stretch=true;//可??看翱诶熘撂钛a容器bar.CanHide=true;bar.GrabHandleStyle=eGrabHandleStyle.Caption;//可??看翱谟袠祟}DockItem=newDockContainerItem("leftDockItem3","LeftDockContainerline1");DockItem);//創(chuàng)建我們想放在可??看翱诘目丶﨑ockedControl=newUserControl1();Dock"-"+DockItem.Text;DockedControl.BackColor=Color.LemonChiffon;DockItem.Control=DockedControl;//指定該控件是托管在停靠容器上//DotNetBar需要添加bar以便能管理它的??康萪otNetBarManager1.LeftDockSite.GetDocumentUIManager().Dock(bar);//設置停靠點的寬度并將bars按比例??吭诶锩?/但是這個尺寸應該大到足以容納所有的Bar包括約束像MinimumSize等等dotNetBarManager1.LeftDockSite.Width=150;}BaseItem::定義了DotNetBar使用的項的基類示例:BaseItemitem=senderasBaseItem;添加“菜單項“也可以通過兩種方式實現(xiàn)“可視化“的方式在“設計器“里可以通過”右鍵“來實現(xiàn);程序的方法privatevoidCreateBar(){ //創(chuàng)建Bar Barbar=newBar("Standard"); bar.CanHide=true; bar.Style=eDotNetBarStyle.Office2003; bar.GrabHandleStyle=eGrabHandleStyle.StripeFlat; bar.WrapItemsDock=true; bar.WrapItemsFloat=false; //向Bar內(nèi)添加項 ButtonItemitem,fileItem; //添加新建菜單 item=newButtonItem("bNew"); item.ImageIndex=0; //item.Image=imageList1.Images[0];item.Text="&New"; eShortcut.CtrlN); item.Category="Standard"; //這將創(chuàng)建類別條目 //添加打開菜單 item=newButtonItem("bOpen"); item.ImageIndex=1; item.Text="&Open"; eShortcut.CtrlO); item.Category="Standard"; //添加子菜單項到打開菜單,例如最近使用的文件之類的東西 fileItem=newButtonItem("file1"); fileItem.Text="&1.File1.txt"; fileItem=newButtonItem("file2"); fileItem.Text="&2.File2.txt"; fileItem=newButtonItem("file3"); fileItem.Text="&3.File3.txt"; fileItem=newButtonItem("file4"); fileItem.Text="&4.File4.txt"; fileItem=newButtonItem("file5"); fileItem.Text="&5.File5.txt"; //添加關閉菜單 item=newButtonItem("bClose"); item.ImageIndex=2; item.Text="&Close"; eShortcut.CtrlX); item.Category="Standard"; //添加保存菜單 item=newButtonItem("bSave"); item.ImageIndex=3; item.Text="&Save"; eShortcut.CtrlS); item.Category="Standard"; //添加打印預覽菜單 item=newButtonItem("bPrintPreview"); item.ImageIndex=6; item.Text="PrintPre&view"; item.Category="Standard"; item.BeginGroup=true; //添加打印菜單 item=newButtonItem("bPrint"); item.ImageIndex=5; item.Text="&Print"; item.Category="Standard"; eShortcut.CtrlP); //添加郵件菜單 item=newButtonItem("bEmail"); item.ImageIndex=4; item.Text="&Email"; item.Category="Standard"; item.BeginGroup=true; //添加“添加/刪除“按鈕 CustomizeItemcitem=newCustomizeItem(); //由于我們將使用ImageList,Bar酒吧必須被添加到DotNetBarManager中 //將Bar加入DotNetBarManager bar.DockSide=eDockSide.Top;}為所有選項添加“事件”.BarItemClick);privatevoidBarItemClick(objectsender,EventArgse){ BaseItemitem=senderasBaseItem; if(item==null||item.Name==""||item.SystemItem) return; MessageBox.Show("Item'"+item.Name+"'clicked");}設置窗體的大小AutoScaleBaseSize屬性的值在窗體顯示時使用,用來計算該窗體的縮放因子。窗體將自動縮放基大小(用作與系統(tǒng)的字體大小進行比較的基準),以確定使用自動縮放時窗體的縮放量。如果要確定根據(jù)特定字體窗體將自動縮放到的大小,請使用GetAutoScaleSize方法。示例: this.AutoScaleBaseSize=newSystem.Drawing.Size(11,17);該屬性將按著Size(a,b)內(nèi)a與b的比例大小自動調(diào)整窗口大小,但是值得注意的是:a與b的絕對值越大,窗口越小。//設置工作區(qū)域的大小this.ClientSize=newSystem.Drawing.Size(351,207);ImageList組件概述ImageList組件就是一個圖像列表。一般情況下,這個屬性用于存儲一個圖像集合,這些圖像用作工具欄圖標或TreeView控件上的圖標。許多控件都包含ImageList屬性。這個屬性一般和ImageIndex屬性一起使用。ImageList屬性設置為ImageList組件的一個實例,ImageIndex屬性設置為ImageList中應在控件中顯示的圖像的索引。使用ImageIndex.Images屬性的Add方法可以把圖像添加到ImageList組件中。Images屬性返回一個ImageCollection。兩個最常用的屬性是ImageSize和ColorDepth。ImageSize使用Size結(jié)構作為其值。其默認值是16×16,但可以取1~256之間的任意值。ColorDepth使用ColorDepth枚舉作為其值。顏色深度值可以從4位~32位。在.NETFramework1.1中,默認是ColorDepth.Depth8Bit。示例privateSystem.Windows.Forms.ImageListimageList1;

Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));

//下面加幾個Image

,"acrobat.ico");

,"addressbook.ico");

,"adjustcolour.ico");

//把imageList1賦給treeView1

this.treeView1.ImageList=this.imageList1;

,3);

,450);

//以上code在Designer完成

//在添加TreeNode的時候,把Image加上

//未選中時,這個node顯示imageList1中的"acrobat.ico",選中后顯示"addressbook.ico"

TreeNodenode=newTreeNode("TreeNodeName",0,1);

treeView1.ExpandAll();討論ImageList里面的圖片的顏色ImageList里面的圖片的大小引起ImageList里面圖片顏色失真的原因是在Design-Time就在VS.NET中往ImageList里面添加了Images。

當用戶一邊在“ImageCollectionEditor”對話框里面添加圖片,VS.NET一邊就已經(jīng)把這些圖片裝載到resource文件里面了。這樣,以后程序運行時就只需要訪問resource文件就可以載入所有圖片而不需要依賴原始的圖片文件。

但是問題在于從結(jié)果看,當VS.NET在Design-Time往resource文件里面添加圖片時并沒有使用用戶指定的ColorDepth(例如Depth32Bit),而用了ImageList.ColorDepth的默認值(Depth8Bit)。這樣,等程序運行時,即使ImageList.ColorDepth指定了Depth32Bit也無濟于事,因為原始的素材本身只有8bit的顏色。這基本上就是失真的問題的原因。

因此,解決方案是:不在Design-Time用VS.NET往ImageList里面添加圖片,而是在程序運行時先指定32Bit的ColorDepth,然后再添加圖片,如以下例子代碼:

這里需要注意的是,必須先指定ColorDepth,然后再添加圖片。因為對ColorDepth賦值會清空所有圖片。BTW,ImageList.ColorDepth的默認值是Depth8Bit,而非文檔上所述Depth4Bit。這一點很容易可以通過寫一段例子代碼來驗證,也可以通過很多Decompiler來查看ImageList的構造函數(shù)的實現(xiàn)來驗證。

ImageSize同ColorDepth類似,也不宜在運行時改動,一旦重新賦值,就會清空所有的圖片。因此,如果程序運行時需要某一圖片的不同大小的版本,可以考慮使用多個不同ImageSize的ImageList。關于ImageList組件的用法還存在問題控件BubbleBar的使用使用效果其實使用很簡單,只有將BubbleBar控件拖到窗體上,然后,就可以添加“Tab”和“Button”了。一些有用的語句privatevoidbubbleButton_Click(objectsender,DevComponents.DotNetBar.ClickEventArgse){DevComponents.DotNetBar.BubbleButtonbutton=senderasDevComponents.DotNetBar.BubbleButton;textBox1.Text=button.Name+","+button.TooltipText;}privatevoidcheckBox2_CheckedChanged(objectsender,System.EventArgse){ if(checkBox2.Checked) bubbleBar1.ButtonBackgroundStretch=true; else bubbleBar1.ButtonBackgroundStretch=false; //ApplyUIchangesandrefresh//刷新 bubbleBar1.RecalcLayout();bubbleBar1.Refresh();}privatevoidnumericUpDown1_ValueChanged(objectsender,System.EventArgse){//圖像分配給控件時總是匹配最佳外觀的尺寸是最好的 bubbleBar1.ImageSizeNormal=newSize((int)numericUpDown1.Value,(int)numericUpDown1.Value); bubbleBar1.RecalcLayout(); bubbleBar1.Refresh();}控件DataGridViewX的使用說明控件DataGridView與DataGridView的基本用法類似。DataGridView有自動按列排序的功能。。dataGridViewX1.SelectedRows[0].Cells[0].Value.ToString()。DataGridView的示例代碼#region設置DataGridView的顯示格式dgvMachinceList.AutosizeColumnsMode=System.Windows.Forms.DataGridViewAutosizeColumnsMode.Fill;dgvMachinceList.AutoGenerateColumns=false;dgvMachinceList.AllowUserToAddRows=false;dgvMachinceList.AllowUserToResizeColumns=true;//////////////////////////////////////////////////////TabControlPaneltcp;foreach(ControlcintabControl1.Controls) if(cisTabControlPanel) { tcp=(TabControlPanel)c; Color.FromArgb(227,239,255); Color.FromArgb(175,210,255); foreach(Controlctrlintcp.Controls) { if(ctrlisDevComponents.DotNetBar.Controls.DataGridViewX) { DataGridViewXDataGridViewX)ctrl; dgv.AutoGenerateColumns=false; dgv.BackgroundColor=Color.FromArgb(227,239,255); dgv.AllowUserToAddRows=false; dgv.AllowUserToDeleteRows=false; //dgv.Autosize=false; dgv.AutosizeColumnsMode=System.Windows.Forms.DataGridViewAutosizeColumnsMode.Fill; dgv.AutosizeRowsMode=System.Windows.Forms.DataGridViewAutosizeRowsMode.AllCells; dgv.AllowUserToResizeColumns=true; //dgv.RowHeadersWidth=900; dgv.MultiSelect=false; dgv.ReadOnly=true; dgv.RowHeadersVisible=false; dgv.ScrollBars=System.Windows.Forms.ScrollBars.Both; dgv.SelectionMode=System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; } } } "HID","硬件ID號");—————————————————圖片示例—————————————————— "HType","硬件類型"); "HDetails","硬件信息"); "MID","所屬機器ID號"); "IP","所屬機器的IP地址"); foreach(DataGridViewColumncolindgvHardwareList.Columns) col.DataPropertyName=col.Name;—————————————————圖片示例——————————————————"MID","機器ID"); "MName","機器名"); "UID","用戶ID"); dgvMachinceList.Columns["UID"].Visible=false; "UName","用戶名"); "IP","IP地址"); "DeptID","DeptID"); dgvMachinceList.Columns["DeptID"].Visible=false; "Department","所屬部門"); foreach(DataGridViewColumncolindgvMachinceList.Columns) col.DataPropertyName=col.Name;dgvFileOpLog.DataSource=fileoplogbll.ListByMachine(m.MID,tbLFileOpLogNum.Value);//怎樣獲得鼠標右擊處的行 DataGridView.HitTestInfohittestinfo=dgvMachinceList.HitTest(e.X,e.Y); dgvMachinceList.Rows[hittestinfo.RowIndex].Selected=true;控件ColorPicker的使用使用效果:單擊相應的按鈕,工作區(qū)(整體)的顏色發(fā)生變化。隨著鼠標在各種顏色上的移動,工作區(qū)(整體)的顏色隨著變化。還可以選擇“MoreColors”進一步改變工作區(qū)的顏色。下面是相應的代碼privateboolm_ColorSelected=false;privateeOffice2007ColorSchemem_BaseColorScheme=eOffice2007ColorScheme.Blue;//預覽,隨著鼠標在各種顏色上的移動,工作區(qū)(整體)的顏色隨著變privatevoidcolorPickerDropDown1_ColorPreview(objectsender,ColorPreviewEventArgse){ RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,e.Color);}//在colorPickerDropDown1上選擇顏色后,工作區(qū)(整體)的顏色隨著變privatevoidcolorPickerDropDown1_ExpandChange(objectsender,EventArgse)//擴展區(qū)域彈出后,所激發(fā)的事件{if(colorPickerDropDown1.Expanded){//剛彈出,則初始化一個顏色值//Rememberthestartingcolorschemetoapplyifnocolorisselectedduringlive-previewm_ColorSelected=false;m_BaseColorScheme=((Office2007Renderer)GlobalManager.Renderer).ColorTable.InitialColorScheme;}else//否則,是“隱去”{if(!m_ColorSelected){RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme);}}}//選擇顏色后,發(fā)生的事件privatevoidcolorPickerDropDown1_SelectedColorChanged(objectsender,EventArgse){m_ColorSelected=true;//IndicatethatcolorwasselectedforbuttonStyleCustom_ExpandChangemethodRibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,colorPickerDropDown1.SelectedColor);}說明初始化一個顏色值m_BaseColorScheme=((Office2007Renderer)GlobalManager.Renderer).ColorTable.InitialColorScheme;改變顏色值RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme,colorPickerDropDown1.SelectedColor);應用顏色值RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable(m_BaseColorScheme);工作區(qū)的控件的顏色有可能不同時變化原因:是各個控件的“Style”和“ColorSchemeStyle”采用的風格不統(tǒng)一解決辦法:都采用一種風格,如“Office2007”即可eOffice2007ColorScheme.Silver控件SideBar的使用功能可實現(xiàn)如下圖似的的分組:實現(xiàn)方式右鍵——>“AddPanel”,進行“分組”。對每一個組進行設置。右鍵,對每一個組,添加控件。該控件的顏色策略——DevComponents.DotNetBar.eSideBarColorSchemescheme=(DevComponents.DotNetBar.eSideBarColorScheme)Enum.Parse(typeof(DevComponents.DotNetBar.eSideBarColorScheme),sSel,false);sideBar1.PredefinedColorScheme=scheme;privatevoidsideBar1_ItemClick(objectsender,System.EventArgse){item=richTextBox1.Text="ItemClick:"+item.Text+"("+item.Name+")\n"+richTextBox1.Text;}Enum枚舉類Enum.GetUnderlyingType方法--返回指定枚舉的基礎類型。-publicstaticTypeGetUnderlyingType(TypeenumType)參數(shù):enumType類型:System.Type枚舉類型。返回值:類型:System.TypeenumType的基礎Type。--示例staticobjectGetAsUnderlyingType(Enumenval){Typeentype=enval.GetType();Typeundertype=Enum.GetUnderlyingType(entype);returnConvert.ChangeType(enval,undertype);}Enum.GetName方法--在指定枚舉中檢索具有指定值的常數(shù)的名稱。-publicstaticstringGetName(TypeenumType,Objectvalue) 參數(shù):enumType類型:System.Type

枚舉類型。value類型:System.Object

特定枚舉常數(shù)的值(根據(jù)其基礎類型)。返回值:類型:System.String一個字符串,該字符串包含enumType的枚舉常數(shù)的名稱,該常數(shù)的值為value;或者,如果沒有找到這樣的常數(shù),則為nullNothingnullptrnull引用(在VisualBasic中為Nothing)。--示例usingSystem;publicclassGetNameTest{enumColors{Red,Green,Blue,Yellow};enumStyles{Plaid,Striped,Tartan,Corduroy};publicstaticvoidMain(){Console.WriteLine("The4thvalueoftheColorsEnumis{0}",Enum.GetName(typeof(Colors),3));Console.WriteLine("The4thvalueoftheStylesEnumis{0}",Enum.GetName(typeof(Styles),3));}}Enum.GetNames方法 --檢索指定枚舉中常數(shù)名稱的數(shù)組。--publicstaticstring[]GetNames(TypeenumType)參數(shù):enumType類型:System..::.Type

枚舉類型。返回值:類型:array<System.String>[]()[]

enumType的常數(shù)名稱的字符串數(shù)組。--示例usingSystem;publicclassGetNamesTest{enumColors{Red,Green,Blue,Yellow};enumStyles{Plaid,Striped,Tartan,Corduroy};publicstaticvoidMain(){ Console.WriteLine("ThevaluesoftheColorsEnumare:"); foreach(stringsinEnum.GetNames(typeof(Colors))) Console.WriteLine(s);Console.WriteLine();Console.WriteLine("ThevaluesoftheStylesEnumare:");foreach(stringsinEnum.GetNames(typeof(Styles)))Console.WriteLine(s);}}Enum.GetValues方法--檢索指定枚舉中常數(shù)值的數(shù)組。--publicstaticArrayGetValues(TypeenumType)參數(shù):enumType類型:System.Type

枚舉類型。返回值:類型:System.Array

enumType的常數(shù)值的Array。該數(shù)組的元素按枚舉常數(shù)的二進制值排序。--示例usingSystem;publicclassGetValuesTest{enumColors{Red,Green,Blue,Yellow}; enumStyles{Plaid=0,Striped=23,Tartan=65,Corduroy=78};publicstaticvoidMain(){ Console.WriteLine("ThevaluesoftheColorsEnumare:");foreach(intiinEnum.GetValues(typeof(Colors))) Console.WriteLine(i); Console.WriteLine(); Console.WriteLine("ThevaluesoftheStylesEnumare:"); foreach(intiinEnum.GetValues(typeof(Styles))) Console.WriteLine(i);}}//Theexampleproducesthefollowingoutput://ThevaluesoftheColorsEnumare://0//1//2//3////ThevaluesoftheStylesEnumare://0//23//65//78Enum..::.Parse方法--將一個或多個枚舉常數(shù)的名稱或數(shù)字值的字符串表示轉(zhuǎn)換成等效的枚舉對象。

名稱說明Parse(Type,String)將一個或多個枚舉常數(shù)的名稱或數(shù)字值的字符串表示轉(zhuǎn)換成等效的枚舉對象。String包含要轉(zhuǎn)換的值或名稱的字符串。備注:value參數(shù)中包含一個值、一個已命名常數(shù)或由逗號(,)分隔的已命名常數(shù)列表。在value中的每個值、名稱或逗號的前面或后面都可以有一個或多個空格。如果value是一個列表,則返回值是各指定名稱通過按位“或”運算結(jié)合而成的值。示例:[FlagsAttribute]enumColors{Red=1,Green=2,Blue=4,Yellow=8};Console.WriteLine("TheentriesoftheColorsEnumare:");foreach(stringcolorNameinEnum.GetNames(typeof(Colors))){Console.WriteLine("{0}={1}",colorName,Convert.ToInt32(Enum.Parse(typeof(Colors),colorName)));}Console.WriteLine();ColorsmyOrange=(Colors)Enum.Parse(typeof(Colors),"Red,Yellow");Console.WriteLine("ThemyOrangevalue{1}hasthecombinedentriesof{0}",myOrange,Convert.ToInt64(myOrange));Parse(Type,String,Boolean)將一個或多個枚舉常數(shù)的名稱或數(shù)字值的字符串表示轉(zhuǎn)換成等效的枚舉對象。一個參數(shù)指定該操作是否區(qū)分大小寫。Boolean參數(shù)指定該操作是否區(qū)分大小寫示例:Enum.GetNames(typeof(DevComponents.DotNetBar.eSideBarColorScheme))(DevComponents.DotNetBar.eSideBarColorScheme)Enum.Parse(typeof(DevComponents.DotNetBar.eSideBarColorScheme),sSel,false)MoneyStyle示例代碼1//Filemenu=newButtonItem("mFile","&File");//NewmenuItem=newButtonItem("mNew","New");//OpenmenuItem=newButtonItem("mOpen","&Open");eShortcut.CtrlO);//PasswordmanagermenuItem=newButtonItem("mPasswordManager","PasswordManager");menuItem.BeginGroup=true;//在該按鈕前加一條線//BackupmenuItem=newButtonItem("mBackup","&BackUp...");menuItem.BeginGroup=true;//在該按鈕前加一條線//RestoremenuItem=newButtonItem("mRestore","&Restore...");//ArchivemenuItem=newButtonItem("mArchive","&Archive...");//ExitmenuItem=newButtonItem("mExit","E&xit");menuItem.BeginGroup=true;//將新建的Bar添加到dotNetBarManager1//然后,設置擺放位置bar.DockSide=eDockSide.Top;示例代碼2//標準工具欄StandardToolbarbar=newBar("Standard");//當被添加到DotNetBarManager.Bars集合里時,風格匹配將被設置在Bar里的其他風格是重要的bar.Style=dotNetBarManager1.Style;bar.Name="barStandard";bar.Stretch=true;bar.EqualButtonSize=true;bar.DisplayMoreItemsOnMenu=true;bar.BackgroundImage=newBitmap(this.GetType(),"background.png");bar.BackgroundImagePosition=eBackgroundImagePosition.Tile;//平鋪覆蓋SetToolbarColorScheme(bar.ColorScheme);//必須添加bar到bars集合里,以便DotNetBarManager能知道它//設置最初??烤€bar.DockLine=1;//當DotNetBarManager知道它后,我們可以將它??吭谶m當?shù)囊贿卋ar.DockSide=eDockSide.Top;//AccountList"bAccountList","AccountList","AccountList.png","AccountListHot.png"));//Portofolio"bPortofolio","Portofolio","Portofolio.png","PortofolioHot.png"));//BillsandDeposits"bBills","Bills&&Deposits","BillsAndDeposits.png","BillsAndDepositsHot.png"));//Reports"bReports","Reports","Reports.png","ReportsHot.png"));//CashFlow"bCashFlow","CashFlow","CashFlow.png","CashFlowHot.png"));//Budget"bBudget","Budget","Budget.png","BudgetHot.png"));privatevoidSetToolbarColorScheme(ColorSchemescheme){ //設置工具欄自定義配色方案…… scheme.ItemText=Color.White; scheme.ItemHotText=Color.FromArgb(247,222,156); scheme.ItemPressedText=Color.FromArgb(247,222,156); //這部分的顏色方案變化僅用于溢出項即如果他們不能安裝在工具欄顯示那他們不能在菜單中顯示 scheme.ItemHotBackground=Color.FromArgb(80,80,80); scheme.ItemHotBackground2=Color.Empty; scheme.ItemHotBorder=Color.FromArgb(80,80,80); scheme.ItemPressedBackground=Color.FromArgb(91,91,91); scheme.ItemPressedBackground2=Color.Empty; scheme.ItemPressedBorder=Color.FromArgb(91,91,91); scheme.ItemExpandedText=Color.FromArgb(247,222,156); scheme.ItemExpandedBackground=Color.FromArgb(91,91,91); scheme.ItemExpandedBackground2=Color.Empty; scheme.ItemExpandedShadow=Color.Empty; scheme.MenuBackground=Color.FromArgb(91,91,91); scheme.MenuBackground2=Color.Empty; scheme.MenuBarBackground=Color.FromArgb(91,91,91); scheme.MenuBarBackground2=Color.Empty; scheme.MenuBorder=Color.Black; scheme.MenuSide=Color.FromArgb(91,91,91); scheme.MenuSide2=Color.Empty;}privateButtonItemCreateToolbarButton(stringname,stringtext,stringimageName,stringhotImageName){ ButtonItembutton=newButtonItem(name,text); button.Image=newBitmap(this.GetType(),imageName); button.HoverImage=newBitmap(this.GetType(),hotImageName); button.PressedImage=button.HoverImage; button.HotTrackingStyle=eHotTrackingStyle.None; button.ButtonStyle=eButtonStyle.ImageAndText; button.ImagePosition=eImagePosition.Top; button.Cursor=Cursors.Hand; returnbutton;}控件PanelEx的使用(1)下圖中的六部分都是PanelEx。(2)PanelEx有如上圖的幾種風格。(3)PanelEx在“Text”屬性里,可以使用Html語言,可以加入超鏈接,只是只能鏈接到某個函數(shù)名,注意的是:必須將該函數(shù),在“屬性”—“事件”選項卡中的“MarkupLinkClick”事件中,進行關聯(lián)。界面:彈出式菜單設置該圖左邊圖的代碼如下://確定:在side-bar中使用的圖都是可用的,//另外,確定,圖的大小要一定小于Side-Bar的高度DevComponents.DotNetBar.SideBarImagesi=newDevComponents.DotNetBar.SideBarImage();si.Picture=newBitmap(typeof(Popup.Form1),"devco.jpg");//Ifimageexceedsthesizeofthepopupmenuthisspecifiestheimagealignmentsi.Alignment=DevComponents.DotNetBar.eAlignment.Bottom;//Ifthereisnoimagespecifiedgradientcanbeusedsi.GradientColor1=Color.Orange;si.GradientColor2=Color.Black;m_PopupFromCode.PopUpSideBar=si;彈出式工具欄--1和2創(chuàng)建按鈕(菜單選項)時,所用的函數(shù)一樣,所用的風格一樣,只是在最后彈出菜單時,使用的函數(shù)不一樣,才導致的外觀不一樣。--這是Menu的風格設置。//設置風格style=Office2003;if(((DevComponents.Editors.ComboItem)cboStyle.SelectedItem).Text!="Office2003") style=DevComponents.DotNetBar.eDotNetBarStyle.VS2005;m_PopupFromCode.Style=style; //如果彈出式菜單不屬于ContextMenu(即沒有在屬性“contextMenuBar1上的ContextMenuEx”上進行相關設置)的話,該彈出式菜單必須在DotNetBar上進行注冊dotNetBarManager1.RegisterPopup(m_PopupFromCode);//把菜單放在按鈕下面Controlctrl=senderasControl;Pointp=this.PointToScreen(newPoint(ctrl.Left,ctrl.Bottom));//下面這兩句才是彈出菜單顯示效果不一樣的原因m_PopupFromCode.PopupMenu(p);m_PopupFromCode.PopupBar(p);--下面是Bar的風格設置右鍵菜單要想加入右鍵菜單,需要:加入控件“ContextMenuBar”。在“ContextMenuBar”上加入所需的右鍵菜單。示例:在“ContextMenuBar”上,右鍵,選擇“AddContextMenu”,出現(xiàn)“ButtomItem1”,設置其“Name”屬性,然后在該ButtomItem1上,單擊右鍵,添加一系列button,這才是具體的右鍵菜單。在要加入右鍵菜單的控件上,設置屬性“contextMenuBar1上的ContextMenuEx”,使該屬性值與“右鍵菜單”ButtomItem1相關聯(lián)即可。ContextMenuEx彈出菜單時,激活的事件是PopupOpen,可以對彈出的菜單進行相應的設置。控件ItemPanel和控件ItemContainer的使用示例的使用效果控件ItemPanel和控件ItemContainer都是用來放其他控件的容器,只是ItemPanel只能縱向放置,而ItemContainer都可以。--示例privatevoiditemPanel2_ItemClick(objectsender,System.EventArgse){ if(senderisButtonItem) {//因為圖表選擇器在不同的容器里,ButtonItem.OptionGroup的設置將不會取消選擇//按鈕來自另一個容器,所以我們必須做 ButtonItembutton=GetCheckedButton(itemPanel2.Items,senderasButtonItem); if(button!=null) button.Checked=false; }} privateButtonItemGetCheckedButton(SubItemsCollectionparentCollection,ButtonItemexclude){ foreach(BaseItemiteminparentCollection) {if(itemisButtonItem&&item!=exclude&&((ButtonItem)item).Checked) returnitemasButtonItem; elseif(item.IsContainer) { ButtonItembutton=GetCheckedButton(item.SubItems,exclude); if(button!=null) returnbutton;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論