自定义控件不更新C#

时间:2015-07-07 21:05:10

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

我不能为我的生活获得自定义控件更新自己。在下面的示例中,“test label1”按预期工作和输出。然而,当我试着让它在以后做同样的事情时,它不会。我试过调用Update和Invalidate,但仍然没有。我错过了什么吗?

交换点也不起作用,所以它看起来不像是屏幕上的例子。

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" });
    }
}

感谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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