TCheckListBox加ReadOnly属性(30分)

  • 主题发起人 主题发起人 j5203
  • 开始时间 开始时间
J

j5203

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个带有ReadOnly属性的TCheckListBox,但不知ReadOnly属性是如何使控件处于
只读状态的,原理是什么?如果能有代码就更好了,谢谢!
 
TCheckListBox有一个属性ItemEnabled可以使所有的列表项ReadOnly.
 
但那样的话Item会变灰
 
从源码里抄袭一段CheckListBox的OnMouseDown :)——
procedure TForm1.CheckListBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
DisableId: Integer = 1;//不设ItemEnabled,自己决定哪一项只读,这里假定是第二项
var
nIndex: Integer;
begin
inherited;
if Button = mbLeft then
with CheckListBox1 do begin
nIndex := ItemAtPos(Point(X, Y), True);
if nIndex = DisableId then Checked[nIndex] := not Checked[nIndex];
end;
end;
 
就是这样咯!
 
如果是全部READONLY,就不用设置那个常量了!
 
接受答案了.
 
后退
顶部