为了界面的美观,我想在程序运行后,用户选择CheckListBox控件时,不显示选中状态,即不在选中项显示一个虚线框!!
我现在是这样写的,在OnDrawItem事件中:
with TCheckListBox(Control) do
Begin
Canvas.FillRect(Rect);
Canvas.Brush.Color := clWhite;
Canvas.Font.Color := clBlack;
Canvas.TextRect(Rect, Rect.Left+1, Rect.Top+1, Items[Index]);
End;
以上语句能将焦点获得项的蓝色去掉,但还是要显示一个虚线框!!!我想把虚线框去掉!!
显示的效果要做到相当于CheckListBox的LTEMS。TEXT用的是LABEL一样!!现在只能用该控件!!
问题解决立刻给分!!!在此先谢了!!!
我现在是这样写的,在OnDrawItem事件中:
with TCheckListBox(Control) do
Begin
Canvas.FillRect(Rect);
Canvas.Brush.Color := clWhite;
Canvas.Font.Color := clBlack;
Canvas.TextRect(Rect, Rect.Left+1, Rect.Top+1, Items[Index]);
End;
以上语句能将焦点获得项的蓝色去掉,但还是要显示一个虚线框!!!我想把虚线框去掉!!
显示的效果要做到相当于CheckListBox的LTEMS。TEXT用的是LABEL一样!!现在只能用该控件!!
问题解决立刻给分!!!在此先谢了!!!
解决方案 »
- 如何检测客户端与服务器连接正常?
- 急问!!!在线等!
- 晕呀~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 江湖救急,在线等待
- dbo的连接问题
- 快过年了工作还好找吗 我是在北京工作的
- 我執行select * from employee這個句子沒有問題,可以打開employee 這個表.可是改成這樣就有問題了.select employee_id,employee_name fro
- 谁有跨国集团的企业总体开发设计方案?-------(我的不知道可不可行可以帮我看看吗?)
- 关于汉化对话框的问题
- delphi程序员的薪金是多少?
- 加急!!!!请问如何动态建立 Access(*.mdb) 的odbc数据源(User Dsn)
- 在dbgrid中怎么用enter键代替tab呢??????
begin
ActiveControl := NIL;
end;
begin
ActiveControl := NIL;
end;
CheckListBox控件的Items.Text好象是用另外的控件绑定的,也就是说CheckListBox控件是两个控件组合的,只用鼠标点击文本时,也就是说只点不选时,还是不对,并且在ONENTER中写,还不能选!!
procedure TForm1.CheckListBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
Rgn, SaveRgn: HRgn;
begin
with TCheckListBox(Control) do
Begin
Canvas.Brush.Color := clwhite;
Canvas.Font.Color := clBlack;
with Rect do
Rgn := CreateRectRgn(Left + 2, Top + 2, Right - 2, Bottom - 2);
Canvas.FillRect(clipRect);
SelectObject(canvas.Handle, Rgn);
FillRgn(canvas.Handle, Rgn, Canvas.Brush.Handle);
deleteObject(Rgn);
Canvas.TextRect(Rect, Rect.Left+1, Rect.Top+1, Items[Index]);
End;end;
希望对你有所帮助;
begin
CheckListBox1.ItemIndex := -1;
ActiveControl := NIL;
end;好像这样可以不要OnDrawItem事件