大家在用vs2005 这类IDE的时候,当我们拖一个控件或组件的时候,注意到属性窗口中,如果该属性是有几个值来选择,或者通过另一个复杂的界面来设置,那么,我单击该格的时候,单元格的内部最右边会显示一个按钮,单击按钮,会显示下拉列表,弹出窗口等等,设置完后,当我将焦点移到别的位置后,显示的按钮就消失了。
我曾用一个textbox和一个button试了试,发现不行。我的思路是先默认button的visiable属性是false。textbox获得焦点后,改为true。失去焦点后,再改为false。可实际上这样不行。应该是事件的先后顺序造成的。
求个解决方案。
我曾用一个textbox和一个button试了试,发现不行。我的思路是先默认button的visiable属性是false。textbox获得焦点后,改为true。失去焦点后,再改为false。可实际上这样不行。应该是事件的先后顺序造成的。
求个解决方案。
{
Button btn = new Button();
btn.BackColor = this.BackColor;
btn.Font = this.Font;
btn.Width = text.PreferredSize.Height;
text.Controls.Add(btn);
btn.Dock = DockStyle.Right;
btn.Text = "…";
btn.Cursor = Cursors.Hand;
btn.Visible = false;
btn.GotFocus+=new EventHandler(btn_GotFocus);
text.Leave += new EventHandler(text_Leave);
text.GotFocus += new EventHandler(text_GotFocus);
btn.Click += new EventHandler(btn_Click);
}void text_Leave(object sender, EventArgs e)
{
((Control)sender).Controls[0].Visible = false;
}void btn_Click(object sender, EventArgs e)
{
//在此添加代碼
}void text_GotFocus(object sender, EventArgs e)
{
((Control)sender).Controls[0].Visible = true;
}void btn_GotFocus(object sender, EventArgs e)
{
((Control)sender).Parent.Focus();
}
------------------------------------------------
LostFocus不能用,Leave可以確實是順序問題