首页 新闻 会员 周边 捐助

WebForm中的listbox换行

0
悬赏园豆:15 [待解决问题]

ListBox显示 文字,但是我定义了Width;在一行中不能全部显示,如何在两行中显示呢? 寻找牛人答复。

Crazylight的主页 Crazylight | 初学一级 | 园豆:171
提问于:2012-06-08 12:11
< >
分享
所有回答(2)
0
2012 | 园豆:21445 (高人七级) | 2012-06-08 12:30

谢谢; 但这是Winform的,而且是自己赋值的;我现在的情况是web程序,且是绑定的DataTabe。这种绑定的模式好像不太一样。 我在看看。

支持(0) 反对(0) Crazylight | 园豆:171 (初学一级) | 2012-06-08 16:55
0

1、首先选中拖至面板的ListBox控件,点属性,选中DrawMode,改成OwnerDrawFixed或OwnerDrawVariable

2、还是在属性工具中,切换到事件(就是那个闪电图标),鼠标双击‘行为’菜单下的DrawItem,添加一个事件。

3、在‘窗体设计器生成的代码’中就添加了一个新的事件
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);

4、在事件中添加代码,你自己通过文字的长度和文字的高度,计算每一列的宽度,进行设置。

private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)  

{  
      Brush myBrush = Brushes.Black; //初始化字体颜色=黑色  
     //此处需要根据当前item中的文字算出item的高,比如算出后是90,则
      this.listBox1.ItemHeight=90;  

      e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,null);  

       e.DrawFocusRectangle();  

} 

 

LCM | 园豆:6876 (大侠五级) | 2012-06-08 13:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册