我正在尝试应用焦点行为,类似于FlowLayoutPanel的按钮蓝色边框。我尝试使用GotFocus和LostFocus,但显然这不是可行的方法。
private void FlowLayoutPanel_Click(object sender, EventArgs e)
{
(sender as Control).BackColor = SystemColors.GradientActiveCaption;
//More operations.
}
private void Panel_LostFocus(object sender, System.EventArgs e)
{
(sender as Control).BackColor = default(Color);
//More operations.
}
在FlowLayoutPanel上单击时,什么也没有发生,而在使用tab时,则依次调用这两个事件。
有什么建议么?
最佳答案
默认情况下,FlowLayoutPanel
不是可选控件。您可以通过从FlowLayoutPanel
派生来创建自定义流程布局面板,并设置Selectable
和UserMouse
control styles以使其可用鼠标选择。同样要接受制表符停止,请将TabStop
属性设置为true:
class ExFlowLayoutPanel:FlowLayoutPanel
{
public ExFlowLayoutPanel():base()
{
SetStyle(ControlStyles.Selectable, true);
SetStyle(ControlStyles.UserMouse, true);
TabStop = true;
}
}
然后,您可以处理
GotFocus
和LostFocus
或Enter
和Leave
事件。关于c# - C#将集中的属性应用于FlowLayoutPanel,例如按钮行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35409786/