C# winform中,简单实现Listview 设置边框 在线等高手....
效果图就像我用红线框起来的一样! listview winform c# --------------------编程问答-------------------- 自己顶一下 高手们小弟急啊 --------------------编程问答-------------------- 重写item估计是可以的,时间不急晚上我写一下 --------------------编程问答-------------------- 小弟太谢谢你了 --------------------编程问答-------------------- 重绘 不是重写 笔误 --------------------编程问答-------------------- 用ListView的DrawMode,自己绘制可以参考http://www.csharpwin.com/csharpresource/3568r4066.shtml --------------------编程问答-------------------- 这个看了没有我想要的那种效果 也试过了! --------------------编程问答-------------------- #4 四楼的晚上和你探头一下 --------------------编程问答-------------------- DrawMode 画个背景图,比你那红线框好看多了。 --------------------编程问答--------------------
--------------------编程问答-------------------- ListView那边怎么调用, --------------------编程问答-------------------- 不是调用,是怎么用 --------------------编程问答-------------------- 9楼已经给出了,OnDrawItem 是ListView 的初始化里的,你不需要调用的 --------------------编程问答-------------------- 你覆写方法就可以了
public class MyListView : ListView
{
public MyListView()
{
this.OwnerDraw = true;
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
}
protected override void OnDrawItem(DrawListViewItemEventArgs e)
{
base.OnDrawItem(e);
if (View != View.LargeIcon) return;
Graphics g = e.Graphics;
Rectangle rect = Rectangle.Empty;
Image image = LargeImageList.Images[e.Item.ImageIndex];
rect = new Rectangle(e.Bounds.Left, e.Bounds.Top, image.Width, image.Height);
g.DrawImage(image, rect);
if ((e.State & ListViewItemStates.Selected) == ListViewItemStates.Selected)
{
g.DrawRectangle(new Pen(Color.Red, 3), rect);
}
// draw text
}
}
--------------------编程问答-------------------- 这个是点击的时候产生的红色边框 还是一开始加载进来就有红色边框呢? 如果是所有图片都有 那可以像上面的重载,但是如果是点击产生的 可以绘制就行了 --------------------编程问答-------------------- 绘制就是这样绘制的,至于需要什么时候绘制,可以加条件限制啊,至于点击时单个绘制,加个判断不就行了么
--------------------编程问答-------------------- private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
if(listView1.SelectedItems.Contains(listView1.Items[e.ItemIndex]))
{
///绘制
}
}
--------------------编程问答-------------------- private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
try{
Graphics g = e.Graphics;
Rectangle rect = Rectangle.Empty;
Image image =imageList1.Images[e.Item.ImageIndex];
rect = new Rectangle(e.Bounds.Left, e.Bounds.Top, image.Width, image.Height);
g.DrawImage(image, rect);
g.DrawRectangle(new Pen(Color.Red, 3), rect);
if ((e.State & ListViewItemStates.Selected) == ListViewItemStates.Selected)
{
g.DrawRectangle(new Pen(Color.Green, 3), rect);
}
}catch(Exception ex)
{
}
}
补充:.NET技术 , C#