我有一个 winform 应用程序,我在其中编写了自己的仅显示系统颜色的小颜色选择器。它基本上是TableLayoutPanel
添加了一堆较小的面板,我只是设置了背景颜色。
很简单:
现在我打开这个表格:
using (frmColourWindow colourPicker = new frmColourWindow (Cursor.Position.X, Cursor.Position.Y, findingPriority))
{
colourPicker.ShowDialog();
if (!colourPicker.SelectedColor.IsEmpty)
{
pnlColor.BackColor = colourPicker._SelectedColor;
}
}
并通过设置DialogResult
用户单击其中一个颜色面板的时间来关闭它。
这一切都很好,唯一我无法做到的事情是在失去焦点时关闭表单(例如,当用户单击其他地方或开始输入时)。我看过Deactivate
,LostFocus
和Leave
事件。只是似乎无法让这些事件在我想要的时候触发。也许我错过了一些明显的东西?