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

SCSDN 2009-07-17 03:01:42
如何重载ComboBox 使其下拉按钮(带下箭头的)和下拉列表的垂直滚动条的宽度改变?
...全文
484 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
重绘吧。楼主,你搜一下。这方面的资料很多。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧