public partial class Form3 : Form 
    { 
        Form frm = new Form();         public Form3() 
        { 
            InitializeComponent(); 
            frm.ShowInTaskbar = false; 
            frm.FormBorderStyle = FormBorderStyle.None; 
            frm.Height = 80; 
            frm.Width = comboBox1.Width; 
            ListBox lbl = new ListBox(); 
            lbl.Items.Add("aaa"); 
            lbl.Items.Add("aaaa"); 
            lbl.Items.Add("bbbbb"); 
            lbl.Dock = DockStyle.Fill; 
            lbl.Name = "lbl"; 
            frm.Controls.Add(lbl); 
        }         int count = 0; 
        private void comboBox1_TextUpdate(object sender, EventArgs e) 
        { 
            if (count % 2 == 0) 
            { 
                frm.Hide(); 
                count++; 
            } 
            else 
            { 
                frm.Controls["lbl"].Text = this.comboBox1.Text; 
                // Form窗体定位,定位在comboBox1下方 
              frm.Location = comboBox1.PointToScreen(new Point(0, comboBox1.Height));                frm.BringToFront(); 
                frm.Show(); 
                this.comboBox1.Focus(); 
                comboBox1.SelectionStart = comboBox1.Text.Length > 0 ? comboBox1.Text.Length : 0;  
                count++; 
            } 
        }      
    } 
去掉 frm.Location = comboBox1.PointToScreen(new Point(0, comboBox1.Height)); 
页面上没有问题,加上的话,屏幕会闪一下,看不到弹出来的Form,可能在Form3后面,用了frm.BringToFront()也没有用。 

解决方案 »

  1.   

    this.comboBox1.Focus();是不是这一句 把焦点带在当前控件上了?
      

  2.   

     
    我就是要将焦点定位在comboBox1上,不定位的话,焦点落在ListBox上,我不能在comboBox1继续输入其他的字符,以筛选在ListBox上显示的项目
      

  3.   

    frm.Show()...不过你可以放到Page_Load里面。。
      

  4.   

    frm.BringToFront(),改为frm.TopMost(),应该可以,试试