/// <summary> /// 清空当前列表选择的项 /// </summary> private void ClearSelectItem() { if (_SelectItem != null) { this.Invalidate(new Rectangle( _SelectItem.Bounds.X, _SelectItem.Bounds.Y - vscroll.Value, _SelectItem.Bounds.Width, _SelectItem.Bounds.Height)); _SelectItem = null; } }
/// <summary> /// 绘制列表项 /// </summary> /// <author>jaly</author> /// <date>2015-09-23 09:28:43</date> /// <param name="g">绘图表面</param> /// <param name="item">要绘制的列表项</param> /// <param name="rect"></param> /// <returns></returns> protected virtual void DrawItem(Graphics g, JIconListViewItem item, Rectangle rect) { //g.DrawRectangle(Pens.Azure, rect); if (item.Icon != null) { g.DrawImage(item.Icon, new Rectangle(rect.X + ((_ItemSize.Width - _IconSize.Width) / 2), rect.Y, _IconSize.Width, _IconSize.Height), new Rectangle(new Point(), item.Icon.Size), GraphicsUnit.Pixel); } var fr = rect; fr.Y += _IconSize.Height + 4; g.DrawString(item.Text, Font, new SolidBrush(ForeColor), fr, stringformat); //TextFormatFlags format = TextFormatFlags.EndEllipsis | TextFormatFlags.VerticalCenter; //if (RightToLeft == RightToLeft.Yes) //{ // format |= TextFormatFlags.RightToLeft | TextFormatFlags.Right; //} //TextRenderer.DrawText(g, item.Text, Font, rect, ForeColor, format); }
protected override void OnClick(EventArgs e) { if (vscroll.IsMouseDown) { return; //MouseUp事件触发在Click后 滚动条滑块为点下状态 单击无效 } if (vscroll.ShouldBeDraw) { //如果有滚动条 判断是否在滚动条类点击 if (vscroll.Bounds.Contains(m_ptMousePos)) { //判断在滚动条那个位置点击 if (vscroll.UpBounds.Contains(m_ptMousePos)) { vscroll.Value -= 50; } else if (vscroll.DownBounds.Contains(m_ptMousePos)) { vscroll.Value += 50; } else if (!vscroll.SliderBounds.Contains(m_ptMousePos)) { vscroll.MoveSliderToLocation(m_ptMousePos.Y); } return; } } //否则 如果在列表上点击 展开或者关闭 在子项上面点击则选中 ClearSelectItem(); foreach (JIconListViewItem item in _Items) { if (item.Bounds.Contains(m_ptMousePos)) { _SelectItem = item; Invalidate(); } } base.OnClick(e); }
public JIconListViewEventArgs(JIconListViewItem selectitem) { _selectItem = selectitem; }
public void AddItem(JIconListViewItem item) { _Items.Add(item); }