【发布时间】:2020-10-31 14:46:08
【问题描述】:
我的窗口窗体有一个工具条,上面有几个工具条按钮。我单击一个工具条按钮以显示下拉颜色对话框,显示颜色对话框,但我必须单击对话框窗口两次才能选择颜色(单击以获得焦点,再次单击以选择颜色)。这很烦人。我在标准按钮下移动相同的代码,下拉颜色对话框只需单击一下即可选择颜色。如何解决此工具条按钮上的双击问题?
private void tsbShowDowndownColorDialog_Click(object sender, EventArgs e) //Need to click twice to select a color
{
NativeColorPicker.DropDownControlManager _ColorPickerManager = new NativeColorPicker.DropDownControlManager(new Point(Cursor.Position.X, Cursor.Position.Y + 6), new Rectangle(0, 0, 0, 0));
object objectValue = new ColorEditor().EditValue(_ColorPickerManager, ChoosenColor);
if (objectValue != null && !_ColorPickerManager.Canceled)
{
ChoosenColor = (Color)objectValue;
}
}
private void btnShowDowndownColorDialog_Click(object sender, EventArgs e) //Normal!
{
NativeColorPicker.DropDownControlManager _ColorPickerManager = new NativeColorPicker.DropDownControlManager(new Point(Cursor.Position.X, Cursor.Position.Y + 6), new Rectangle(0, 0, 0, 0));
object objectValue = new ColorEditor().EditValue(_ColorPickerManager, ChoosenColor);
if (objectValue != null && !_ColorPickerManager.Canceled)
{
ChoosenColor = (Color)objectValue;
}
}
【问题讨论】:
-
您是否尝试在打开颜色对话框后以编程方式设置焦点?
-
颜色对话框获得焦点是因为键盘在弹出后工作(我可以使用键盘进行选择)。只有鼠标必须单击一次,然后单击另一个完成选择。我看到有些软件有同样的问题。
-
我将工具条按钮替换为工具条拆分按钮(或在工具条上插入标准按钮)然后问题解决。因此,根本问题在于工具条按钮的行为。