{
//this._mydv.RowFilter = string.Format("code like '{0}%'", this.tb_DrogName.Text);
Point cc = this.PointToScreen(this.tb_DrogName.Location);
this._panel.Show(cc.X, cc.Y + this.tb_DrogName.Height + 1);
this.Focus();
}
/// <summary>
/// 下拉部分的容器 panel
/// </summary>
private ToolStripDropDown _panel = new ToolStripDropDown();
if (this._mylistbox == null)
{
this._mylistbox = new ListBox();
this._mylistbox.FormattingEnabled = true;
this._mylistbox.ItemHeight = 12;
this._mylistbox.Size = new System.Drawing.Size(120, 88);
//this._panel.Items.Add(myconhost);
_mylistbox.DataSource = this._mydv;
_mylistbox.DisplayMember = "name";
this._mylistbox.Click += new EventHandler(_mylistbox_Click);
ToolStripControlHost ControlHost = new ToolStripControlHost(_mylistbox);
Panel a = new Panel();
a.Controls.Add(this._mylistbox);
ControlHost.AutoSize = false;
ControlHost.Padding = Padding.Empty;
ControlHost.Margin = Padding.Empty;
this._panel.Size = new Size(this._mylistbox.Size.Width + Padding.Horizontal, this._mylistbox.Size.Height + Padding.Vertical);
this._panel.Items.Add(ControlHost);
}
解决,加入combo
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("xianshi");
dt.Columns.Add("ma");
for (int i = 0; i < 1000; i++)
{
DataRow dr = dt.NewRow();
dr["xianshi"] = "a" + i.ToString();
dr["ma"] = "a" + i.ToString();
dt.Rows.Add(dr);
}
this.dv = dt.DefaultView;
this.comboBox1.DataSource = this.dv;
this.comboBox1.DisplayMember = "xianshi";
ToolStripControlHost ControlHost = new ToolStripControlHost(this.comboBox1);
ControlHost.AutoSize = false;
ControlHost.Padding = Padding.Empty;
ControlHost.Margin = Padding.Empty;
this._panel.Size = new Size(this.comboBox1.Size.Width + Padding.Horizontal, this.comboBox1.Size.Height + Padding.Vertical);
this._panel.Items.Add(ControlHost);
}
private void textBox2_Enter(object sender, EventArgs e)
{
this.Text += "ent";
Point cc = this.PointToScreen(this.textBox2.Location);
//this._panel.Show(cc.X, cc.Y + this.textBox2.Height + 1);
this._panel.Show(cc.X, cc.Y);
this.comboBox1.Focus();
}
private void comboBox1_TextChanged(object sender, EventArgs e)
{
this.textBox2.Text = this.comboBox1.Text;
}