我正在为一种触摸屏设备开发应用程序。为了方便用户使用,我需要更改组合框的大小。
我已经检查了很多东西,包括DrawItemEventHandler
和MeasureItemEventHandler
,但是并没有按照我的要求工作。
基本上,我想更改组合框的高度而不接触字体大小。当我更改组合框的字体大小时,它看起来像图像的左侧。如何设置看起来像图像右侧的组合框?
顺便说一句,不知道它是否有效,我没有使用数组字符串。我像绑定数据。
combobox.DisplayMember = "Name";
combobox.ValueMember = "ID";
combobox.DataSource = new BindingSource { DataSource = datalist };
提前致谢。
使用TaW解决方案,我可以根据需要设置项目。当组合框项目未下拉时,我唯一无法在中间设置文本的功能。如何将此文本位置设置为居中?
您可以设置ItemHeight
属性,然后在DrawItem
事件中自己绘制项目。
并不是很难,搜索“ ownerdraw”和“ combobox”。代码项目中有一个示例
这是一个最低版本,从上面的链接中提取:
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0) return;
Font f = comboBox1.Font;
int yOffset = 10;
if ((e.State & DrawItemState.Focus) == 0)
{
e.Graphics.FillRectangle(Brushes.White, e.Bounds);
e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), f, Brushes.Black,
new Point(e.Bounds.X, e.Bounds.Y + yOffset));
}
else
{
e.Graphics.FillRectangle(Brushes.Blue, e.Bounds);
e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), f, Brushes.White,
new Point(e.Bounds.X, e.Bounds.Y + yOffset));
}
}
您还可以设置DropDownStyle
以DropDownList
获得突出显示的工作,你需要设置DrawMode
到OwnerDrawFixed
。(或者OwnerDrawVariable
,如果您希望某些项目具有不同的高度,则为。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句