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()也没有用。
{
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()也没有用。
我就是要将焦点定位在comboBox1上,不定位的话,焦点落在ListBox上,我不能在comboBox1继续输入其他的字符,以筛选在ListBox上显示的项目