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

解决方案 »

  1.   

    已经用listview做好了   现在改成DataGridView 工作量有点大
      

  2.   

            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
    添加上面三个事件处理函数,并且挂钩好。
      

  3.   

    参考:http://stackoverflow.com/questions/12989497/how-to-change-the-alignment-on-the-listview-header