protected override void OnDrawItem(DrawItemEventArgs e) { this.DrawMode = DrawMode.OwnerDrawFixed; this.ItemHeight = 22; e.DrawBackground(); e.DrawFocusRectangle(); Brush myBrush = Brushes.Black; if (e.Index > -1 && e.Index < this.cItem.Count) { CListBoxItem item = CItem[e.Index]; item.Location = e.Bounds; item.Paint(e.Graphics); } }
private void clbField_MouseDown(object sender, MouseEventArgs e) { CurrTable = this; if (e.Button == MouseButtons.Right && clbField.SelectedIndex >= 1) { if (clbField.Items[clbField.SelectedIndex].ToString().Contains(seqStr)) { tsmiSeq.Checked = true; } else { tsmiSeq.Checked = false; } cmsField.Show(clbField, e.Location); } else { int idx = clbField.IndexFromPoint(e.Location); if (idx > -1 && idx < clbField.Items.Count) { CListBoxItem item = clbField.CItem[idx]; bool isCheck = item.isCheck(e.Location); if (isCheck) { item.IsSelected = !item.IsSelected; if (idx == 0) { for (int i = 1; i < clbField.Items.Count; i++) { CListBoxItem it = clbField.CItem[i]; it.IsSelected = item.IsSelected; } } } clbField.Invalidate(); } int index = ((ListBox)sender).IndexFromPoint(e.X, e.Y); if (index >= 1) { var p = this.Parent.PointToClient(PointToScreen(new Point(e.X, e.Y + 28))); ((ListBox)sender).DoDragDrop(new object[] { this, index, p.X, p.Y }, DragDropEffects.Link); } } }