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,滚动条为竖向。

04-14 16:08