前段時間在優化專案時,突然想到在panel上顯示文字並換行的問題。當有一段文字需要顯示並且最好是顯示在panel。於是我就動手寫了下,做了乙個demo程式,現在將主要的**貼出來,如果存在不足還希望能夠幫忙提意見,以補充完善.
//////顯示文字時需要用到的方法
///summary>
intlinedistance =
5;//行間距
graphics gcs;
intiheight =
0;stringnrline;
stringnrlinepos;
intsearchpos =
0;intsection =
1;intsectionheight =
10;dispmode dm = dispmode.none;
intipanelnotpagerheight=
0;///
///分析要顯示文字的內容,將文字進行分段,分行,並測算好行距,段距等
///summary>
///name
="pl">param>
///name
="ft">param>
///name
="iwidth">param>
///name
="value">param>
private
void
gettextinfo(panel pl,font ft,
intiwidth,
string
value)
nrline =
value.
split(
newstring[
1],stringsplitoptions.removeemptyentries);
//記下每一段文字的資訊
section = nrline.length;
nrlinepos =
newstring[section];
//存放每行分割的index數字
sizef sf1,sf2;
stringtemps,tempt;
stringdrawstring;
inttempos;
//臨時index
intipos;
//文字index
//將每一段文字的分成句子,並記下每句的起始idex
for(
inti =
0;i0;
tempos = searchpos;
if(searchpos>= nrline[i].length)
drawstring = nrline[i];
nrlinepos[i]=
"";while(drawstring.length>searchpos)
}if(!isfind)
}ipos+= drawstring.length;
nrlinepos[i]+=
","+ipos.
tostring();
iheight++;}}
if(dm == dispmode.none)
else}}
catch(exception e)
}///
///根據gettextinfo方法中測算好的資訊來繪製文字,將文字顯示到panel上
///summary>
///name
="pl">param>
///name
="text">param>
///name
="font">param>
///name
="solidbrushcolor">param>
///name
="iwidth">param>
private
void
painttextonpanel(panel pl,
stringtext,font font,color solidbrushcolor,
intiwidth)
first =
0;substr = nrline[i];
if(nrlinepos[i]!=
null)tmpstr = nrlinepos[i].
trimstart(
',');
midstr = substr.
substring(first);
if(tmpstr!=
"")if(j == idxs.length-
1)else
first = idx;
//記下本句結束的index}}
}}///
///顯示模式,分為全顯示和分頁顯示兩種
///summary>
public
enumdispmode
extjs在panel中動態新增模板並載入資料
廢話不多說,直接上 js檔案如下 ext的panel extend ext.panel.panel requires ext.panel.panel id misdetailpanel layout border closable true,width 400,height 300,initcomp...
C 在Panel中嵌入子窗體
關閉嵌入的其他窗體 foreach control item in this.splitcontainer.panel2.controls 開啟新窗體 frmaddproduct newfrm new frmaddproduct form newfrm new form newfrm.topleve...
C 在Panel中新增新的窗體 Form
本文的要寫的是如何將窗體 form 新增到panel中。為什麼要這樣呢?1 如果用tab控制項,整個窗體的控制項太多,不易於我們程式設計 2 可以更靈活的控制窗體的布局。我想你一定看過這樣的配製資訊窗體吧 迅雷的配置頁面 在你的專案開發中,是否也希望做出這種效果呢?應該如何設定呢?單擊窗體的左邊的按...