我正在尝试为我的某些控件添加帮助功能,而且我很难选择控件以获得我想要的帮助。
这就是我想做的事。
目前我已经实现了excpet#3的一切,我可以做一个MouseDown事件,这样我的点击事件在选中时不会触发(工作正常,除了大纲)。有没有人知道我如何概述控件以及点击时哪个事件适合点火?
答案 0 :(得分:3)
扩展jberger的答案,您可以使用Control的MouseHover事件在控件周围绘制一个类似于此的矩形:
private void Control_MouseHover ( object sender, EventArgs e ) {
if ( inHelpMode ) {
var c = (Control)sender;
var rect = c.Bounds;
rect.Inflate(1,1);
var g = CreateGraphics ();
ControlPaint.DrawBorder ( g, rect, Color.Blue, ButtonBorderStyle.Solid );
}
}
这假设您在用户单击“帮助”按钮时设置了私有实例变量inHelpMode
。
当用户将鼠标的焦点移出控件时,您可能还希望从控件中删除蓝色轮廓。为此,您可以使用MouseLeave事件:
private void Control_MouseLeave ( object sender, EventArgs e ) {
Invalidate ();
}
答案 1 :(得分:1)
部分答案。这是我开始的地方。
假设:isInHelpMode
是应用程序中的私有实例变量,当单击“帮助”按钮时,该变量被设置为true ...
应用中的某个地方:
myControl.MouseHover += (sender,eventArgs) =>
{
if(isInHelpMode)
{// draw blue outline
// insert your code to draw the blue outline
}
}