此属性用于设置返回列表框中被选择的项的序号。如果MultiSelect 属性设为True,并且用户选择了多个项,此属性返回其中有输入焦点的项的序号。程序示例代码如下:
[delphi] view plain copyPRocedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin ListBox1.MultiSelect: = False; Button.Caption = ’Move to Top’; for I: = 1 to 10 do ListBox1.Items.Add(’Item’ + IntToStr(I)); end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Move(ListBox1.ItemIndex, 0); end;1、ListBox1 的 Style 属性改为 lbOwnerDrawVariable2、在ListBox的OnDrawItem事件裡,根据item的值,改变Canvas属性即可。
例如:
[delphi] view plain copyprocedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin //字体用原来默认的颜色 if Odd(index) then //当items的index为奇数时的颜色 begin listbox1.Canvas.Brush.Color:=clwindow; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end else //当items的index为偶数时的颜色 begin listbox1.Canvas.Brush.Color:=clinactivecaptiontext; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end; if odSelected in state then //当选定时的颜色 begin listbox1.Canvas.Brush.Color:=clhighlight; ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]); end; end;新闻热点
疑难解答
图片精选