如果内容字符串宽度大于ListBox宽度,则将DotNet ListBox项目Winforms自动换行?

Kos*_*mos 14 c# listbox width listboxitem winforms

嗯,嗯,这意味着有些线条应该是两行的.我的老板认为这是更简单的解决方案,而不是限制显示的文字以适应宽度而不喜欢水平滚动条> _ <

Kos*_*mos 36

lst.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
lst.MeasureItem += lst_MeasureItem;
lst.DrawItem += lst_DrawItem;

private void lst_MeasureItem(object sender, MeasureItemEventArgs e)
{
    e.ItemHeight = (int)e.Graphics.MeasureString(lst.Items[e.Index].ToString(), lst.Font, lst.Width).Height;
}

private void lst_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    e.DrawFocusRectangle();
    e.Graphics.DrawString(lst.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds);
}
Run Code Online (Sandbox Code Playgroud)

  • 看起来有点复杂,但工作就像一个魅力. (2认同)