当前位置:编程学习 > C#/ASP.NET >>

C# winform中,简单实现Listview 设置边框 在线等高手....

效果图就像我用红线框起来的一样! listview winform c# --------------------编程问答-------------------- 自己顶一下 高手们小弟急啊 --------------------编程问答-------------------- 重写item估计是可以的,时间不急晚上我写一下 --------------------编程问答-------------------- 小弟太谢谢你了 --------------------编程问答-------------------- 重绘 不是重写 笔误 --------------------编程问答-------------------- 用ListView的DrawMode,自己绘制
可以参考http://www.csharpwin.com/csharpresource/3568r4066.shtml --------------------编程问答-------------------- 这个看了没有我想要的那种效果  也试过了! --------------------编程问答-------------------- #4 四楼的晚上和你探头一下 --------------------编程问答-------------------- DrawMode 画个背景图,比你那红线框好看多了。 --------------------编程问答--------------------

    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
        }
    }
--------------------编程问答-------------------- ListView那边怎么调用, --------------------编程问答-------------------- 不是调用,是怎么用 --------------------编程问答-------------------- 9楼已经给出了,OnDrawItem 是ListView 的初始化里的,你不需要调用的 --------------------编程问答-------------------- 你覆写方法就可以了
--------------------编程问答-------------------- 这个是点击的时候产生的红色边框 还是一开始加载进来就有红色边框呢? 如果是所有图片都有 那可以像上面的重载,但是如果是点击产生的 可以绘制就行了 --------------------编程问答-------------------- 绘制就是这样绘制的,至于需要什么时候绘制,可以加条件限制啊,至于点击时单个绘制,加个判断不就行了么
--------------------编程问答--------------------  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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,