C 中在panel上寫文字並換行的方法

2021-08-26 11:42:41 字數 2377 閱讀 2317

前段時間在優化專案時,突然想到在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 可以更靈活的控制窗體的布局。我想你一定看過這樣的配製資訊窗體吧 迅雷的配置頁面 在你的專案開發中,是否也希望做出這種效果呢?應該如何設定呢?單擊窗體的左邊的按...