我在VB.Net WinForms应用程序中使用VS 2005。我有一个自定义用户控件,需要一个变量来正确呈现其数据。 我的问题是,要求调用子填充变量的最佳方法是什么?我想到了几个选项:
拥有一个WriteOnly属性,并在加载用户控件时检查它是否为“Nothing”,如果是这种情况则抛出异常。我不喜欢这样,因为错误是在运行时,我想要在设计时填充变量(比如将参数传递给子/函数)。
有一个全局变量来保存我希望用户控件使用的变量。我也可以使用这种技术的异常,但是,就像我上面提到的选项一样,错误将在运行时抛出。
您有什么建议填写用户控制在设计时需要的变量?
提前致谢。
答案 0 :(得分:3)
我已经使用自定义控件在这条路上走了几次而且我已经找到了一个真理
如果未设置必要的属性,自定义控件必须呈现而不会崩溃。
你遇到这种情况的情况太多了。主要的例子是WinForm设计器。只要将控件拖到主机上,WinForms就会创建一个实例并在VS进程中呈现它。默认情况下,它不会将任何变量传递给构造函数,因此初始渲染将在没有设置任何属性的情况下发生。
如果在未设置属性的情况下将控件渲染设置为较小的状态,则可以节省大量时间。这是多少标准控件的工作原理。通常我让控件呈现一条消息“Lacking Property X”或者根本不显示任何内容。
答案 1 :(得分:0)
将变量作为参数添加到控件的所有公共构造函数中?
答案 2 :(得分:0)
我会重载构造函数,默认构造函数会将变量设置为预定的默认值。