原創|其它|編輯:郝浩|2012-10-15 14:55:01.000|閱讀 2076 次
概述:在上一篇《DevExpress控件開發常用要點項目總結版(一)》中講到了已經三點DevExpress控件的使用經驗及教訓,以及綜合設計到的多個項目的問題,下面我們接著上一篇文章繼續吧。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在上一篇《DevExpress控件開發常用要點項目總結版(一)》中講到了已經三點DevExpress控件的使用經驗及教訓,以及綜合設計到的多個項目的問題,下面我們接著上一篇文章繼續吧。
在我的分頁控件以及Winform開發框架很多項目介紹里面,很多都顯示了行號,其實這個在DevExpress中的實現很簡單,如果需要,可以實現在自己的代碼里面。
1) 先實現GridView的CustomDrawRowIndicator事件,實現代碼如下所示。
private void advBandedGridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) { e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; if (e.Info.IsRowIndicator) { if (e.RowHandle >= 0) { e.Info.DisplayText = (e.RowHandle + 1).ToString(); } else if (e.RowHandle < 0 && e.RowHandle > -1000) { e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite; e.Info.DisplayText = "G" + e.RowHandle.ToString(); } } }
2)然后設置GridView控件的IndicatorWidth為合適的寬度,如40左右則比較好。
這樣設置后,就能順利顯示行號了,是不是很方便呢。
在一些自定義的列表中,我們為了合理顯示表頭的內容,可能會要求表頭顯示的文字可以折行顯示,然后還需要內容居中顯示,那么在DevExpress該如何操作呢,代碼設置如下所示。
//表頭折行設置 this.gridView1.ColumnPanelRowHeight = 40; this.gridView1.OptionsView.AllowHtmlDrawHeaders = true; this.gridView1.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap; //表頭及行內容居中顯示 this.gridView1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
然后設置表頭的時候,設置內容使用\r\n來進行換行,如:體重\r\n(kg)
下面是我分頁控件里面的例子設置,供參考。
this.winGridViewPager1.AddColumnAlias("Weight", "體重\r\n(kg)"); this.winGridViewPager1.AddColumnAlias("Pulse", "脈搏\r\n(次)"); this.winGridViewPager1.AddColumnAlias("BloodSystolic", "收縮壓"); this.winGridViewPager1.AddColumnAlias("BloodDiastolic", "舒張壓"); this.winGridViewPager1.AddColumnAlias("SightLeft", "視力\r\n(左)"); this.winGridViewPager1.AddColumnAlias("SightRight", "視力\r\n(右)");
在客戶使用軟件的時候,反饋說有一些數字輸入框、日期輸入框,不支持鍵盤輸入內容,經測試,確實是存在這個問題,默認的數字、日期等輸入,都要切換輸入法才可以輸入,不能默認就支持數字的輸入,那么是否有辦法解決呢,當然辦法總是有的。
其實只需要設置 ImeMode=Off 即可解決問題,關于這個屬性,大家可以參考下面的介紹。(就開發而言,記得逢數字,日期的控件,必須設置 ImeMode=Off ,否則你的軟件使用客戶會不滿的。
ImeMode 枚舉:指定一個值,該值是用來確定在選定了對象時該對象的輸入法編輯器 (IME) 的狀態。 以下是微軟的解釋:
有時候,我們為了一些特殊的需要,要對表頭進行特別的排版,使其支持多行表頭的效果,如上圖所示,這樣方便對各項內容進行歸類顯示,易于閱讀,在DevExpress中應該如何實現這個效果呢?
1)先在設計模式將普通的GridView轉換為BandedGridView或者AdvBandedGridView,這樣才能支持這種多行表頭的做法,如下所示。
2)定義一些字段,用來顯示其中的內容,如下圖所示。
3)定義一些Band列,設置相關的屬性,并把設計界面中的字段列表拖動到對應過的Band列上面,這樣就構成了一個Band列和字段內容的對應關系。
完成上面的綁定關系后,記得設置GridView控件的屬性,使其不要顯示原本的ColumnHeader等內容。
設置好這些內容,才能合理、完美顯示出多行表頭的信息。
一個實際的案例就是門診的時候,醫生用藥的情況,除了選擇其他內容外,主要的就是快速錄入藥品信息。我們平常去大一點 的醫院看病,好像看到的多數操作都是這樣。還有一種方式就是銷售人員提供的報價單,從產品里面選擇信息,然后修改下價格,這些場景都是很適合這樣的操作的。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園