【问题标题】:Custom Control Not Updating C#自定义控件不更新 C#
【发布时间】:2015-09-25 13:42:22
【问题描述】:

我一辈子都无法让自定义控件自行更新。在下面的示例中,“test label1”按预期工作和输出。但是,当我稍后尝试让它做同样的事情时,它不会。我试过调用更新和无效,但仍然没有。我错过了什么吗?

交换点也不起作用,所以它看起来不像只是在屏幕外。

public partial class AdvancedListControl : UserControl
{
    public void createAnotherLabel()
    {
        Controls.Add(new Label { Location = new Point(14, 14), AutoSize = true, Text = "test label2 - test" }); // this won't create
        // me.Controls.Add(new Label { Location = new Point(14, 14), AutoSize = true, Text = "test label2 - test" });
        // Update();
        // Invalidate();
    }

    private AdvancedListControl me;

    public AdvancedListControl()
    {
        InitializeComponent();

        me = this;
        Controls.Add(new Label { Location = new Point(26, 26), AutoSize = true, Text = "test label1" });
    }
}

谢谢。

【问题讨论】:

  • 为我工作...我只是将您的代码复制/粘贴到用户控件中,将用户控件放到新表单上,在表单上放置一个按钮,然后调用按钮 myAdvancedListControl.createAnotherLabel(); .我无法重现任何问题。
  • 感谢您的宝贵时间。我像你一样创建了一个新的干净项目,是的,它确实有效。结果我原来的表格上有两份我没有意识到的副本。感谢您对我首先应该尝试的内容进行微调。 :-)

标签: c# custom-controls visual-c#-express-2010


【解决方案1】:

嗯!菜鸟错误。我和 Jashaszun 做了同样的事情并创建了一个新项目,是的,它确实有效。结果我在一个表单上有两个高级控件的副本,而隐藏的那个是我正在点击的那个。这是漫长的一天。 ;-)

【讨论】:

    【解决方案2】:

    控件方法必须由最终用户操作驱动的控件调用,例如按钮的事件处理程序,导致页面回发,这将导致控件触发该方法并使用更新控件呈现页面状态。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2020-02-03
      • 2013-07-19
      • 2012-11-17
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2020-08-18
      相关资源
      最近更新 更多