如何重载ComboBox 使其下拉按钮(带下箭头的)和下拉列表的垂直滚动条的宽度改变?

SCSDN 2009-07-17 03:01:42
如何重载ComboBox 使其下拉按钮(带下箭头的)和下拉列表的垂直滚动条的宽度改变?
...全文
271 点赞 收藏 10
写回复
10 条回复
SCSDN 2009年07月20日
谢谢enaking,通过将不同的控件拼接在一起的方式,将此问题解决了。结贴,散分。
详细的实例我将放在我的博客http://blog.csdn.net/SCSDN上。
public partial class ComboBoxDIY : UserControl
{
public bool buttondown = false;
public ComboBoxDIY()
{
InitializeComponent();
this.listBox1.Visible = false;
this.vScrollBar1.Visible = false;
}

private void button1_Click(object sender, EventArgs e)
{
//下拉按钮未曾按下
if (this.buttondown==false)
{
//listbox所有数据的项数
int count = this.listBox1.Items.Count;
//获取listbox所能显示的项数
int displaycount = this.listBox1.Height / this.listBox1.ItemHeight;
//滚动条显示的最大值
int scrollmax = 0;
//垂直方向上显示内容数目大于所能显示的数目时
//垂直滚动条直接可见
if (count > displaycount)
{
scrollmax = count - 1;
this.vScrollBar1.Visible = true;
}
this.vScrollBar1.LargeChange = displaycount;
this.vScrollBar1.Maximum = scrollmax;
this.vScrollBar1.Minimum = 0;
this.vScrollBar1.Scroll += new ScrollEventHandler(vscroll);

this.listBox1.Visible = true;
//下拉按钮按下
this.buttondown = true;
}
//下拉按钮已按下
else
{
if(this.vScrollBar1.Visible)this.vScrollBar1.Visible = false;
this.listBox1.Visible = false;
//下拉按钮弹起
this.buttondown = false;
}
}

private void vscroll(object sender, ScrollEventArgs e)
{
//ScrollBar控制listBox滚动
this.listBox1.TopIndex=e.NewValue;
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//文本框显示选择结果
this.textBox1.Text =this.listBox1.Items[this.listBox1.SelectedIndex].ToString();
this.vScrollBar1.Visible = false;
this.listBox1.Visible = false;
//下拉按钮弹起
this.buttondown = false;
}
}
回复 点赞
yanm7788 2009年07月17日
网上找找资料,应该问题不大.http://hi.csdn.net/chengking/profile他的博客里面看看.
回复 点赞
SCSDN 2009年07月17日
先试试看
回复 点赞
wzytiger 2009年07月17日
拼控件吧,没写过
回复 点赞
SCSDN 2009年07月17日
to enaking:
是自定义控件吗?
回复 点赞
超维电脑科技 2009年07月17日
友情UP
回复 点赞
enaking 2009年07月17日
你还是自已写吧,用文本框加按钮,然后然后再点按钮时加载列表等容器,注意位置就行了
回复 点赞
enaking 2009年07月17日
网上很少,,不太实用,,,我曾经找过,,后来没办法自写了一个控件,,,
回复 点赞
SCSDN 2009年07月17日
搜了 没搜到实现这个效果的 大家有做过的 帮助一下 谢谢了
回复 点赞
风之影子 2009年07月17日
重绘吧。楼主,你搜一下。这方面的资料很多。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告