ListBox があり、次のように定義された DrawItem イベントがあります。ListBox の次のプロパティは、DrawMode = OwnerDrawFixed および FormattingEnabled = ture として設定されます。
プログラムを実行して ListBox に複数のアイテムまたはオブジェクトを追加すると、ちらつきがひどくなります。何が問題なのか正確にはわかりません。他のwinformで非常によく似た設定のListBoxがありますが、ちらつきません。ちらつきのあるListBoxでwinformの画像をキャプチャしようとしましたが、キャプチャされた画像はListBoxが毎回ちらつくのを示していませんでした。
method HTrendFrm.AGroupList_DrawItem(sender: System.Object; e: System.Windows.Forms.DrawItemEventArgs);
var
lb:ListBox;
tg:TTrendGroup;
begin
if e.Index = -1 then exit;
lb := (sender as ListBox);
tg := TTrendGroup(LoggingGroup.Item[e.Index]);
if tg.Enabled then
begin
if ((e.State and DrawItemState.Selected) = DrawItemState.Selected) then
begin
lb.ForeColor:=Color.White;
e.Graphics.FillRectangle(SystemBrushes.Highlight, e.Bounds);
end
else
lb.ForeColor := Color.Black;
end
else
lb.ForeColor := Color.LightGray;
lb.CreateGraphics.DrawString(tg.name,new Font('Arial',9,FontStyle.Bold),new SolidBrush(lb.ForeColor),e.Bounds.Left+5,e.Bounds.Top);
if ((e.State and DrawItemState.Focus) <> DrawItemState.Checked) then
e.DrawFocusRectangle();
end;
では、ListBox のちらつきの原因は何ですか?
前もって感謝します、