C# listView 重绘问题

一aa一 2013-09-15 10:29:39
我现在想将 listView 标题 设置为居中显示,下面的列表内容居左显示,我应该怎么做呢?因为只要实现这一个功能所以不想做的太麻烦,是重绘Header 么? 或者sendmessage 某个消息就可以?或者我响应列表头宽度改变的消息,修改标题名称,填写相应个空格?


...全文
364 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-09-15
  • 打赏
  • 举报
回复
效果
threenewbee 2013-09-15
  • 打赏
  • 举报
回复
        private void ListView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
        {
            using (StringFormat sf = new StringFormat())
            {
                sf.Alignment = StringAlignment.Center;
                e.DrawBackground();
                e.Graphics.DrawString(e.Header.Text, ListView1.Font,
                        Brushes.Black, e.Bounds, sf);
            }
        }

        private void ListView1_DrawItem(object sender, DrawListViewItemEventArgs e)
        {
            e.DrawDefault = true;
        }

        private void ListView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
        {
            e.DrawDefault = true;
        }
设置ListView的OwnerRedraw=true 添加上面三个事件处理函数,并且挂钩好。
一aa一 2013-09-15
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
或者用DataGridView模拟
已经用listview做好了 现在改成DataGridView 工作量有点大
一aa一 2013-09-15
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
重绘Header
能不能具体说下我需要怎么重绘么?我只想实现标题对其方式和列表内容可以单独设置
threenewbee 2013-09-15
  • 打赏
  • 举报
回复
或者用DataGridView模拟
threenewbee 2013-09-15
  • 打赏
  • 举报
回复
重绘Header

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧