C# 从 UserControl 更改主窗体的 UI

耶稣 土耳其语

我有一个名为 Form1 的表单,其主体为 FlowLayoutPanel

这个 FlowLayoutPanel 列出了一堆 UserControl,每当我点击 UserControl 内的删除按钮时,我都希望 FlowLayoutPanel 被更新。

它从名为 listTiles 的列表呈现:

  public List<BookModel> listTiles = new List<BookModel>();

如何更新 UserControl 内的主窗体?

解决方案

使用事件处理程序是处理您可以在此处找到的问题的好主意:将子控件的单击事件传递给父控件

但是,将父表单传递给子表单也可以。例子:

private Form main;

    UserControl(Form mainForm) 
    {
        initialize();
        main = mainForm;
    }
拥有里程

有几种方法可以做到,但我会列出一种

事件驱动模型

关键是任何特定的子视图都应该有一个事件。假设事件的形式是

event EventHandler<BookModel> RemoveClicked;

这意味着主窗体将需要以下形式的某种形式的事件处理程序:

private void HandleThatEvent(object sender, BookModel model)
{
    // do the thing
    // handle the event
}

最后,初始化后,主窗体应该订阅该事件。这可以通过设计器完成(事件将列在 misc. 下),或直接通过如下代码完成:

public void AddView(YourUserControl someView)
{
    InitializeComponent();
    someView.RemoveClicked += HandleThatEvent;
}

如果您正在管理流布局,它可能有一些不同的删除方法.. 例如,您可能需要将引用传递给要删除的控件。因此,如果您不想重新渲染,则可能必须巧妙地匹配已删除的项目。但是,每次列表更改时重新呈现整个流程控制的速度可能一样快。我会先测试一下,如果你从列表中重新渲染它,你是否会在 UI 中遇到任何明显的延迟。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#从窗体传递keydown到usercontrol

来自分类Dev

在C ++中将父窗体的引用传递给子UserControl

来自分类Dev

从窗体UserControl转换为WPF UserControl

来自分类Dev

从UserControl派生时的刷新UI问题

来自分类Dev

C#UserControl多重继承

来自分类Dev

C#UserControl多重继承

来自分类Dev

将数据从UserControl传递到窗体

来自分类Dev

如何从UserControl正确引用父窗体

来自分类Dev

如何在WPF C#中以编程方式更改ContentControl中的UserControl

来自分类Dev

返回具有打开其他窗体(C#)的窗体的主窗体,然后关闭其他窗体?

来自分类Dev

从窗体内的UserControl,如何访问父窗体的DataGridView?

来自分类Dev

从窗体内的UserControl,如何访问父窗体的DataGridView?

来自分类Dev

从线程触发时,C#ShowDialog()不会阻止主窗体

来自分类Dev

C#WPF在UserControl中绘制OxyPlot

来自分类Dev

在 UserControl 中设置 ImageBox 的图像 - c#

来自分类Dev

使用C#和WinForms在与主窗体不同的线程上创建新的临时窗体

来自分类Dev

在C#中,主窗体的控件后面打开了子窗体

来自分类Dev

属性更改时的UserControl火灾事件

来自分类Dev

控制其他UserControl上的控件更改

来自分类Dev

属性更改时的UserControl火灾事件

来自分类Dev

如何从UserControl更改MainPage TextBlock文本?

来自分类Dev

从 UserControl 动态更改 WPF 窗口中的内容

来自分类Dev

从后面的页面代码更改 UserControl 的内容

来自分类Dev

WPF UserControl不能在窗体外部绑定

来自分类Dev

如何将值从窗体传递到UserControl?

来自分类Dev

如何从已经在窗体中的另一个 UserControl 事件中将单例 UserControl 加载到窗体

来自分类Dev

无法将类型“ System.Web.UI.Control”转换为“ System.Web.UI.UserControl”

来自分类Dev

WPF从UserControl视图模型绑定主窗口控件

来自分类Dev

WPF将Usercontrol属性绑定到主窗口

Related 相关文章

  1. 1

    C#从窗体传递keydown到usercontrol

  2. 2

    在C ++中将父窗体的引用传递给子UserControl

  3. 3

    从窗体UserControl转换为WPF UserControl

  4. 4

    从UserControl派生时的刷新UI问题

  5. 5

    C#UserControl多重继承

  6. 6

    C#UserControl多重继承

  7. 7

    将数据从UserControl传递到窗体

  8. 8

    如何从UserControl正确引用父窗体

  9. 9

    如何在WPF C#中以编程方式更改ContentControl中的UserControl

  10. 10

    返回具有打开其他窗体(C#)的窗体的主窗体,然后关闭其他窗体?

  11. 11

    从窗体内的UserControl,如何访问父窗体的DataGridView?

  12. 12

    从窗体内的UserControl,如何访问父窗体的DataGridView?

  13. 13

    从线程触发时,C#ShowDialog()不会阻止主窗体

  14. 14

    C#WPF在UserControl中绘制OxyPlot

  15. 15

    在 UserControl 中设置 ImageBox 的图像 - c#

  16. 16

    使用C#和WinForms在与主窗体不同的线程上创建新的临时窗体

  17. 17

    在C#中,主窗体的控件后面打开了子窗体

  18. 18

    属性更改时的UserControl火灾事件

  19. 19

    控制其他UserControl上的控件更改

  20. 20

    属性更改时的UserControl火灾事件

  21. 21

    如何从UserControl更改MainPage TextBlock文本?

  22. 22

    从 UserControl 动态更改 WPF 窗口中的内容

  23. 23

    从后面的页面代码更改 UserControl 的内容

  24. 24

    WPF UserControl不能在窗体外部绑定

  25. 25

    如何将值从窗体传递到UserControl?

  26. 26

    如何从已经在窗体中的另一个 UserControl 事件中将单例 UserControl 加载到窗体

  27. 27

    无法将类型“ System.Web.UI.Control”转换为“ System.Web.UI.UserControl”

  28. 28

    WPF从UserControl视图模型绑定主窗口控件

  29. 29

    WPF将Usercontrol属性绑定到主窗口

热门标签

归档