C#Winforms-将生存状态从一个用户控件切换到另一个用户控件?

杰里米

我在下面附有一个示例,说明我想用我的代码完成哪些工作。如果可能的话,有人可以写一个片段或解释它如何工作?我尝试了几种不同的方法,但都没有成功(我不断收到范围错误或用户控件无法识别)。

当前试图获取UserControl1.Button1来切换UserControl2上的可见性状态。

层次结构:

  1. 表格1
    1. UserControl1
      1. 按键1
    2. UserControl2
      1. 按键1

我可以得到如下所示的变种,但是从usercontrol到usercontrol似乎需要一些额外的步骤。救命!

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
    }

    private void HIDE2_Click(object sender, EventArgs e)
    {
        userControl21.Hide();
    }
奥古兹(Oguz Ozgul)

正如@ hans-passant指出的那样。

事件的使用为我们提供了一种使用观察者模式的简便方法。

当单击隐藏第二个控件的按钮时,实现一个自定义EventInUserControl1并调用此事件(通知观察者有关更改):

public partial class UserControl1 : UserControl
{
    public event EventHandler HideRequested;

    ...

    private void button1_Click(object sender, EventArgs e)
    {
        if (HideRequested != null)
        {
            HideRequested.Invoke(this, EventArgs.Empty);
        }
    }

}

在Form1中,通过实现事件处理程序将事件附加到事件:

    public Form1()
    {
        InitializeComponent();
        userControl11.HideRequested += userControl11_HideRequested;
    }

    void userControl11_HideRequested(object sender, EventArgs e)
    {
        userControl21.Hide();
    }

当然,还有其他方法可以实现此目的,但是任何其他方法都可能会在代码中引入耦合。例如,这也是有效的(通过将用户控件2的访问修饰符更改为public):

    private void button1_Click(object sender, EventArgs e)
    {
        (Parent as Form1).userControl21.Hide();
    }

您还可以想到这样的事情:(那么您不必将USerControl2的访问修饰符更改为public)

在Form1中:

    public void HideUserControl2()
    {
        userControl21.Hide();
    }

并在UserControl1 button_click中:

    private void button1_Click(object sender, EventArgs e)
    {
        (Parent as Form1).HideUserControl2();
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从另一个用户控件 Winforms C# 更改用户控件

来自分类Dev

当用户启动另一个exe文件/程序时,在c#winforms程序中检测

来自分类Dev

C#Winforms中面板与用户控件的性能

来自分类Dev

当另一个打开的c#winforms时使窗体不交互式

来自分类Dev

如何从另一个用户控件更改用户控件的标签颜色?C#.NET Framework

来自分类Dev

试图从另一个更新一个文本框,反之亦然C#Winforms

来自分类Dev

C#WinForms如何从一个空值到另一个空值使用非静态字符串?

来自分类Dev

在C#Winforms对话框中使用WebBrowser控件

来自分类Dev

等待用户输入以继续使用c#winforms中的StreamReader

来自分类Dev

仅在管理用户中运行的C#WinForms

来自分类Dev

在切换到另一个控件之前,如何将数据保存在用户控件上?

来自分类Dev

将ComboBox添加到DataGridView C#Winforms

来自分类Dev

将c#Winforms应用程序转换为Java

来自分类Dev

如何在WPF中将对象从一个窗口绑定到另一个窗口中的另一个控件?(C#)

来自分类Dev

关闭子窗体,然后单击C#.net中的用户控件中的按钮,打开另一个窗体?

来自分类Dev

使用c#Winforms创建自定义用户控件的属性

来自分类Dev

从一个用户定义的类到另一个存在返回问题的类的转换。(C#)

来自分类Dev

将焦点重新放在按钮单击事件C#winforms上以前集中的控件上

来自分类Dev

C# WPF - 发生另一个控件事件时更改控件内容

来自分类Dev

C#WinForms:在另一个线程中具有IWin32Window owner参数的Form.ShowDialog()

来自分类Dev

C#如何让一个表单订阅一个浮动控件面板中用户控件内的事件?

来自分类Dev

在C#Winforms中的控件中水平和垂直对齐动态添加的控件

来自分类Dev

控件如何在不中断C#的情况下从一个开关箱转到另一个开关箱?

来自分类Dev

c#设置/从另一个线程/从另一个线程获取控件的属性

来自分类Dev

如何在C#Winforms的dropdownlist控件中获取数据源名称

来自分类Dev

C#WinForms中的自定义绘画拆分器控件

来自分类Dev

C#Winforms Web浏览器控件,使用向上和向下键滚动

来自分类Dev

从单独的函数C#WinForms访问已创建的TabPage中的控件

来自分类Dev

在C#Winforms中自动调整大小后如何获取控件的尺寸

Related 相关文章

  1. 1

    从另一个用户控件 Winforms C# 更改用户控件

  2. 2

    当用户启动另一个exe文件/程序时,在c#winforms程序中检测

  3. 3

    C#Winforms中面板与用户控件的性能

  4. 4

    当另一个打开的c#winforms时使窗体不交互式

  5. 5

    如何从另一个用户控件更改用户控件的标签颜色?C#.NET Framework

  6. 6

    试图从另一个更新一个文本框,反之亦然C#Winforms

  7. 7

    C#WinForms如何从一个空值到另一个空值使用非静态字符串?

  8. 8

    在C#Winforms对话框中使用WebBrowser控件

  9. 9

    等待用户输入以继续使用c#winforms中的StreamReader

  10. 10

    仅在管理用户中运行的C#WinForms

  11. 11

    在切换到另一个控件之前,如何将数据保存在用户控件上?

  12. 12

    将ComboBox添加到DataGridView C#Winforms

  13. 13

    将c#Winforms应用程序转换为Java

  14. 14

    如何在WPF中将对象从一个窗口绑定到另一个窗口中的另一个控件?(C#)

  15. 15

    关闭子窗体,然后单击C#.net中的用户控件中的按钮,打开另一个窗体?

  16. 16

    使用c#Winforms创建自定义用户控件的属性

  17. 17

    从一个用户定义的类到另一个存在返回问题的类的转换。(C#)

  18. 18

    将焦点重新放在按钮单击事件C#winforms上以前集中的控件上

  19. 19

    C# WPF - 发生另一个控件事件时更改控件内容

  20. 20

    C#WinForms:在另一个线程中具有IWin32Window owner参数的Form.ShowDialog()

  21. 21

    C#如何让一个表单订阅一个浮动控件面板中用户控件内的事件?

  22. 22

    在C#Winforms中的控件中水平和垂直对齐动态添加的控件

  23. 23

    控件如何在不中断C#的情况下从一个开关箱转到另一个开关箱?

  24. 24

    c#设置/从另一个线程/从另一个线程获取控件的属性

  25. 25

    如何在C#Winforms的dropdownlist控件中获取数据源名称

  26. 26

    C#WinForms中的自定义绘画拆分器控件

  27. 27

    C#Winforms Web浏览器控件,使用向上和向下键滚动

  28. 28

    从单独的函数C#WinForms访问已创建的TabPage中的控件

  29. 29

    在C#Winforms中自动调整大小后如何获取控件的尺寸

热门标签

归档