是否有可能检测控件是否已成为用户控件中的焦点? 我的意思是不是在设计时在用户控件中添加的某些控件,而是在窗体上使用用户控件后添加的控件。 一个典型的例子是面板。 我的用户控件就像一个面板,我想检测用户控件上包含的(嵌套)控件什么时候可以做我的工作。

谢谢大家!

===============>>#1 票数:1 已采纳

我将采用的方法是在创建UserControl且您未处于设计模式时,循环浏览该用户控件中的每个控件,将钩子添加到其GotFocus事件中,并将该钩子指向UserControl的方法(例如ChildControlGotFocus ),进而引发用户控件宿主可以使用的事件。

例如,下面是实现此功能的示例UserControl:

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();

        if (!this.DesignMode)
        {
            RegisterControls(this.Controls);
        }

    }
    public event EventHandler ChildControlGotFocus;

    private void RegisterControls(ControlCollection cControls)
    {
        foreach (Control oControl in cControls)
        {
            oControl.GotFocus += new EventHandler(oControl_GotFocus);
            if (oControl.HasChildren)
            {
                RegisterControls(oControl.Controls);
            }
        }
    }

    void oControl_GotFocus(object sender, EventArgs e)
    {
        if (ChildControlGotFocus != null)
        {
            ChildControlGotFocus(this, new EventArgs());
        }
    }
}

  ask by MahanGM translate from so

未解决问题?本站智能推荐:

1回复

窗体中UserControl内部的焦点控件

我有一个Form,将其命名为MyForm,并且在Form中有一个UserControl,将其命名为MyUserControl 。 我想将焦点设置在MyUserControl中的TextBox上。 所以连接看起来像这样: 当显示MyForm ,也显示MyUserControl ,并
1回复

如何将TAB键挂在用户控件中,以便焦点不会移到其他控件上?

我有一个用户控件,它打算占用整个表单。 我希望我的用户控件能够处理TAB按键并执行某些操作,而不是让TAB将焦点移到窗体上的另一个控件。 我正在我的用户控件中处理KeyDown事件,但是按下TAB键时不会触发。
2回复

在用户控件中公开控件

由于破坏了一些设计规则而被嘲笑和飙升的风险我有以下问题。 我们创建了一些Usercontrols,我们使用Properties公开了这些用户控件的控件。 然后我们在设计器中更改这些问题以进一步调整用户控件(针对特定表单),如果我们保存什么都不是由设计者编写的,并且确实没有保存更改。
3回复

在“内部”用户控件上使用Caliburn.Micro绑定功能

我对Caliburn.Micro很新,所以我猜这有一个简单的答案(或者至少我希望它有:)) 我有一个ViewModel,它有一个名为ConnectedSystem的属性,它有一个名为Name的子属性。 在我的视图中,我有以下XAML(摘录): 这很好用,名称按预期显示在Tex
1回复

用户控件中的绑定

假设我有以下代码(在Winforms中): 如果要在用户控件之外更改SomeClass.Name的值,则MyName属性将永远不会更改。 我究竟做错了什么? 谢谢
2回复

用户控件的BeginUpdate()EndUpdate

我编写了一个UserControl ,其行为类似于ContainerControl ,但完全由WindowsForms绘制(我从UserControl继承) 我想在填充它时避免绘制控件,所以我需要写一些类似于BeginUpdate() - EndUpdate() 。 当控件是用户绘制
2回复

WPF用户控件

我是WPF的新手,我的问题是我在主窗口中添加了一个顶部菜单UserControl ,并将主窗口分为三列:在最右列中有一个DockPanel ,现在我的问题是我没有当我单击顶部菜单项时,不知道如何在该右栏中添加另一个控件。 一些代码,以说明我的尝试: 现在,我该怎么做才能在windo
3回复

如何从另一个用户控件中隐藏用户控件?

我在C#的学校项目中工作,但是有问题。 我做了一个用户控件,其中有一些按钮,这就像带有按钮的横幅。 这些按钮应显示和隐藏其他用户控件 这是我的带有按钮的用户控件中的代码: 比在按钮之一中我编写了以下代码: 但是问题在于它没有隐藏报告(ra)。 并且它不显示购买报告(r
1回复

FlowLayoutpanel内部的订购控件

我有一个Windows.Forms.FlowLayoutPanel ,在运行时将填充MasterMeter类型的控件(以及从MasterMeter继承的控件)。 这是您的标准Usercontrol 。 每个控件都有一个属性ErrorTime 。 此值保留当前错误或警报的持续时间。
3回复

C#用户控件:访问控件属性

我已经创建了一个控件并在该控件中添加了一个TextBox,我将该控件附加到.aspx页面 和 在.aspx.cs文件中我想访问用户控件里面的TextBox的值...如何实现?