none
为什么winform里的listview控件标题字体大小不能设置????????????????????? RRS feed

  • 问题

  • 我在做winform开发时,用Listview控件,   里面显示的内容字体大小可以设置,但是标题行的字体大小却不能设置 ,为什么会这样?我花了好长时间都没有找,难道微软在做这个控件时就没有考虑这个问题????????
    2009年5月7日 7:44

答案

全部回复

  • 你好!
         如果你指的是ColumnHeader的话,的确不能改字体啊!
    周雪峰
    2009年5月7日 8:18
    版主
  • this.listView1.OwnerDraw = true;
                this.listView1.View = System.Windows.Forms.View.Details;
                this.listView1.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.listView1_DrawColumnHeader);
                this.listView1.DrawItem += new System.Windows.Forms.DrawListViewItemEventHandler(this.listView1_DrawItem);
                this.listView1.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.listView1_DrawSubItem);



    private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
            {
                using (StringFormat sf = new StringFormat())
                {
                    // Store the column text alignment, letting it default
                    // to Left if it has not been set to Center or Right.
                    switch (e.Header.TextAlign)
                    {
                        case HorizontalAlignment.Center:
                            sf.Alignment = StringAlignment.Center;
                            break;
                        case HorizontalAlignment.Right:
                            sf.Alignment = StringAlignment.Far;
                            break;
                    }

                    // Draw the standard header background.
                    e.DrawBackground();

                    // Draw the header text.
                    using (Font headerFont =
                                new Font("Helvetica", 10, FontStyle.Bold))
                    {
                        e.Graphics.DrawString(e.Header.Text, headerFont,
                            Brushes.Black, e.Bounds, sf);
                    }
                }
                return;

            }

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

            private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
            {
                e.DrawDefault = true;
            }


    http://feiyun0112.cnblogs.com/
    2009年5月7日 8:38
    版主
  • 谢谢,我说的就是ColumnHeader,就没有办法改字体大小,前景色,背景色了吗?


    那也太不合理了
    2009年5月7日 8:51
  • 谢谢!
    还是没有变化啊!

    2009年5月7日 8:58
  • 在设计的时候,ColumnHeader的确没被设定成能改变字体。
    这可能对你的程序开发造成了一定的困扰,你可以进入以下的链接,对Visual Studio的使用提出你的反馈和建议。
    https://connect.microsoft.com/VisualStudio

    谢谢你的建议!

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年5月8日 7:24