devexpress 的控件相當好看而且很好用,但 dateedit 在是顯示周名時,只能顯示一個“星”字。
以下是解決方法,此解決方法不需修改其源碼,所以免去了重新編譯的必要,可直接使用其發布的標準dll。
public class mydateedit : devexpress.xtraeditors.dateedit
{
protected override devexpress.xtraeditors.popup.popupbaseform createpopupform()
{
return new mypopupdateeditform(this);
}
}
public class mypopupdateeditform : devexpress.xtraeditors.popup.popupdateeditform
{
public mypopupdateeditform(mydateedit dateedit) : base(dateedit)
{
}
protected override devexpress.xtraeditors.controls.dateeditcalendar createcalendar()
{
return new mydateeditcalendar(owneredit.properties, owneredit.editvalue);
}
}
public class mydateeditcalendar : devexpress.xtraeditors.controls.dateeditcalendar
{
public mydateeditcalendar(
devexpress.xtraeditors.repository.repositoryitemdateedit item,
object editdate) : base (item, editdate)
{
}
protected override devexpress.xtraeditors.viewinfo.dateeditinfoargs createinfoargs()
{
devexpress.xtraeditors.viewinfo.dateeditinfoargs info = base.createinfoargs ();
system.globalization.datetimeformatinfo newformat =
(system.globalization.datetimeformatinfo)info.dateformat.clone();
// 以下是重新設置日期的周名稱。
// 缺省情況下,前面帶有“星期”兩字,也正是因為如此才導致所謂的錯誤。
// 注意,當前實現未處理語言環境,僅適用于中文環境。
newformat.abbreviateddaynames = new string[]{
"日",
"一",
"二",
"三",
"四",
"五",
"六"};
info.dateformat = newformat;
return info;
}
}
使用時,只需 mydateedit dateedit1 = new mydateedit() 就可以了。
新聞熱點
疑難解答