1.问题情境:实际中的下拉框默认向下扩展,如果屏幕下方空间不足,会向上扩展。
向下扩展情况下,有时候会超出form窗体。
2.解决办法:
寻找相关属性无果。
退而求其次,重画item的框。发现DrawItem事件仅控制在下拉列表的范围内。
再退,重写combobox,不如干脆自定义。textBox+button+listBox即可。
3.代码:
仅显示关键代码:listBox的显示问题,默认不可见。
//button:画有▼
private void button2_Click(object sender, EventArgs e)
{
listBox1.Visible = !listBox1.Visible;
listBox1.Focus();
}
//listBox
private void listBox1_LostFocus(object sender,EventArgs e)
{
listBox1.Visible = false;
}
//窗体
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
listBox1.Visible = false;
}
//listBox
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = (string)listBox1.SelectedItem;
listBox1.Visible = false;
}
4.注意:listBox MultiColumn属性为false,滚动条为竖向。