自訂WinForm 下ListBox的行高

來源:互聯網
上載者:User
      Windows下傳統型應用程式開發自己比較弱,好像我也不經常做,最近有一個程式,用了.net內建的ListBox控制項,遇到一個問題,就是ListBox預設的行高是不能改的(有這個屬性,但是簡單的設定是無效的).使用Google大神尋找一翻後發現,如果想實現這個功能,需要先將DrawMode設為OwnerDrawFixed,然後在DrawItem事件裡自己畫每一個項.Code
 if (IndexlistBox.Items.Count < 1)
                return;

            this.IndexlistBox.ItemHeight = 25;
            using (Graphics g = e.Graphics)
            {
                //如果該項被選擇
                Brush myBrush = Brushes.Black;

                if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
                    e.Graphics.FillRectangle(new SolidBrush(this.BackColor), e.Bounds);
                else
                    e.Graphics.FillRectangle(new SolidBrush(IndexlistBox.BackColor), e.Bounds);
                //畫出項文本
                e.Graphics.DrawString(IndexlistBox.GetItemText(IndexlistBox.Items[e.Index]), e.Font, myBrush, e.Bounds.X, e.Bounds.Y);
                e.DrawFocusRectangle();
            }


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.