如何区分表单上的用户控件负载和运行时的负载

时间:2011-03-23 19:37:33

标签: c# winforms user-controls c#-4.0

我使用C#为Windows窗体应用程序创建了一个用户控件。此用户控件具有一些属性。在运行时,如果用户没有输入此属性的值,我想显示一个消息框并退出应用程序。

问题是当我在用户控件的Load事件中编写检查代码时。我拖的时候将它放在消息框出现的表格上。

private void UserControl1_Load(Object sender, EventArgs e) 
{
    if (_getFirstPageArgument==null || _getFirstPageArgument.Length==0) 
    { 
        throw new Exception("Some Message"); 
    }
}

如何区分表单上的负载和运行时的负载?

3 个答案:

答案 0 :(得分:4)

我担心这里有一个更大的问题。但要解决您的直接问题(如果我理解正确的话......)有一个名为DesignMode的表单属性。当您处于visual studio设计模式时,这将是true。在运行时,这将是false

答案 1 :(得分:1)

对于初学者来说,@ Niimas案例可以是一个很好的学习点,可以理解Visual Studio实际上运行并执行部分代码,即使我们处于设计时,这就是调用构造函数的原因。甚至“DesignMode”属性也不是100%可靠。您可以在此处找到与http://weblogs.asp.net/fmarguerie/archive/2005/03/23/395658.aspx

相关的有趣说明

答案 2 :(得分:0)

如果您只想知道何时将类型本身加载到运行时(而不是特定实例),则可以将代码放入该类的静态构造函数中。

如果我误解了您的问题,请在您希望特定事件发生时使用时间表澄清。