在C 中控制ListBox某一行的字型顏色

2022-03-23 19:14:13 字數 1825 閱讀 3004

private

void form1_load(object

sender, eventargs e)

private

void listbox1_drawitem(object

sender, drawitemeventargs e)

e.graphics.fillrectangle(

newsolidbrush(vcolor), e.bounds);

e.graphics.drawstring(((listbox)sender).items[e.index].tostring(), e.font,

newsolidbrush(e.forecolor), e.bounds);

e.drawfocusrectangle();

}

根據字串的字首,分別對文字顏色進行渲染。

//

listbox drawitem事件響應函式

private

void listbox1_drawitem(object

sender, drawitemeventargs e)

else

if (listbox1.items[e.index].tostring().indexof("

你壞") != -1

)

//焦點框

e.drawfocusrectangle();

//文字

e.graphics.drawstring(listbox1.items[e.index].tostring(), e.font, mybsh, e.bounds, stringformat.genericdefault);

}

}

效果如下,當輸入「你好」並按新增按鈕的時候相應的listbox的內容變為的綠色,輸入「你壞」的時候變為了紅色,達到了我們的要求目的:

要實現這個效果很簡單,只需自定義乙個類繼承listbox,然後重寫ondrawitem事件就可以了,下面看**

class

clistbox:listbox

else

e.drawfocusrectangle();

g.dispose();

base

.ondrawitem(e);

}//捕獲訊息,畫listbox邊框

protected

override

void wndproc(ref

message m)

base.wndproc(ref

m); }}//

應用如下:

public

partial

class

form1 : form

private

clistbox mylistbox;

private

void form1_load(object

sender, eventargs e)

}

view code

效果如下:

參考文章

順德早茶 ,  在c#中控制listbox某一行的字型顏色

c#中動態修改listbox的item的顏色的方法

gyzsky, listbox隔行顯示不同顏色

例2 一種動態渲染顏色的方式

el table展開行中通過事件控制某一行的展開

在el table中type expand 時,可以設定展開行,但有時候,需要我們通過一些別的事件來觸發展開行事件,如何來控制某一行的展開與閉合,這是本篇部落格所講訴的。togglerowexpansion,在官網中有描述過這一方法可以用來切換某一行的展開狀態 但是具體 如何書寫,沒有具體的介紹。首...

更改檔案,某一行

1 deffetch data 2print 這是查詢功能 3 tag false 4 data aaaa s n data 5 res data 6 with open bbb r encoding gbk as file 7for i in file 8if i data 9 tag true ...

python刪除某一行

整理了網路上的一些方法,一般有兩種方法 第一種 是先把檔案讀入記憶體,在記憶體中修改後再寫入原始檔。例子 將內容包含 123 的所有行刪去 with open c users lai desktop 1.txt r as r lines r.readlines with open c users l...