用C#写一个实现combobox下拉选项列表可以滑屏滚动
时间: 2023-12-06 11:02:00 浏览: 203
你需要用到ComboBox和ListBox控件,然后将ListBox控件嵌入到ComboBox的下拉框中。
代码示例:
```
// 创建一个ListBox控件
ListBox listBox1 = new ListBox();
listBox1.Dock = DockStyle.Fill;
// 将需要滑动的选项添加到ListBox中
for (int i = 0; i < 20; i++)
{
listBox1.Items.Add("选项" + i.ToString());
}
// 创建一个ComboBox控件
ComboBox comboBox1 = new ComboBox();
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
comboBox1.DropDownHeight = 200;
// 将ListBox控件嵌入到ComboBox的下拉框中
comboBox1.DropDown += (sender, e) =>
{
ComboBox cb = sender as ComboBox;
if (cb == null) return;
// 设置ListBox的位置和大小
listBox1.Location = new Point(0, cb.DropDownHeight);
listBox1.Size = new Size(cb.DropDownWidth, cb.DropDownHeight);
// 将ListBox添加到ComboBox的下拉框中
cb.Controls.Add(listBox1);
// 设置ListBox的滚动条可见
listBox1.ScrollAlwaysVisible = true;
};
// 如果ListBox控件被点击,则将选中的文本显示在ComboBox中
listBox1.SelectedIndexChanged += (sender, e) =>
{
ListBox lb = sender as ListBox;
if (lb == null) return;
ComboBox cb = lb.Parent as ComboBox;
if (cb == null) return;
// 将选中的文本显示在ComboBox中
cb.Text = lb.SelectedItem.ToString();
// 隐藏ListBox控件
lb.Parent.Controls.Remove(lb);
};
// 将ComboBox添加到Form中
this.Controls.Add(comboBox1);
```
这样,当你点击ComboBox下拉框时,就会弹出一个带有滚动条的ListBox控件,你可以通过滑动滚动条来选择选项,选择后会自动隐藏ListBox控件,并将选中的文本显示在ComboBox中。
阅读全文