问题:如何使此控件所在窗体初始化完成之前,不触发这些繁琐的操作?
目前我已经知道 this.DesignMode 可以判断是否处于IDE设计模式,那么如何判断是否处于其所在窗体的初始化过程呢?
9 个解决方案
#1
试试Load事件里设置一个局部变量的值来判断,完成初始化时会引发这个Load事件的。
#2
只能这样了吗,有没有其他方法呢?
#3
只能这样
#4
你创建的自定义的控件应该是继承UserControl, 那么在你进入设计界面 打开工具箱时,工具箱应该会出现自定义组件,把自定义的控件拖到设计界面修改属性就可以了, 这部分修改是在界面的构造界面的方法里实现的,此时事件不会触发,你最好把事件的注册写在这个控件属性设置的最后面。
还有一个方法就是如果是特殊的需要在加载界面重新赋值,而不想触发相应事件的,就全局加一个Isload变量,进Load加载改为true,完成加载后置为false,然后在事件最开始做这个参数判断就可以了
还有一个方法就是如果是特殊的需要在加载界面重新赋值,而不想触发相应事件的,就全局加一个Isload变量,进Load加载改为true,完成加载后置为false,然后在事件最开始做这个参数判断就可以了
#5
问题:如何使此控件所在窗体初始化完成之前,不触发这些繁琐的操作?
窗体都还没有初始化 也就是说那个时候 也许你的控件 根本对于窗体来说不存在
而且 是什么样子的操作 非要让你关系到窗体初始化的前后?还是说 逻辑上处理本身就不合理?
你控件.Parent 可以得到你控件所在的上层容器 当 xx.Parent.Parent....Parent = null 时候 就说明前一个Parent是窗体了
得到窗体了 你自己再从窗体中获取一些信息吧
窗体都还没有初始化 也就是说那个时候 也许你的控件 根本对于窗体来说不存在
而且 是什么样子的操作 非要让你关系到窗体初始化的前后?还是说 逻辑上处理本身就不合理?
你控件.Parent 可以得到你控件所在的上层容器 当 xx.Parent.Parent....Parent = null 时候 就说明前一个Parent是窗体了
得到窗体了 你自己再从窗体中获取一些信息吧
#6
#7
感觉控件设计有问题了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
#8
对,我就是在属性变更的时候触发一个自定义事件的,在事件过程中处理一些复杂操作。。
我觉得还是需要考虑初始化判断的,在窗体初始化过程中,会修改自定义控件的属性值,同样会触发事件。
#9
在事件实现的时候,先判断IsLoaded属性
#1
试试Load事件里设置一个局部变量的值来判断,完成初始化时会引发这个Load事件的。
#2
试试Load事件里设置一个局部变量的值来判断,完成初始化时会引发这个Load事件的。
只能这样了吗,有没有其他方法呢?
#3
只能这样
#4
你创建的自定义的控件应该是继承UserControl, 那么在你进入设计界面 打开工具箱时,工具箱应该会出现自定义组件,把自定义的控件拖到设计界面修改属性就可以了, 这部分修改是在界面的构造界面的方法里实现的,此时事件不会触发,你最好把事件的注册写在这个控件属性设置的最后面。
还有一个方法就是如果是特殊的需要在加载界面重新赋值,而不想触发相应事件的,就全局加一个Isload变量,进Load加载改为true,完成加载后置为false,然后在事件最开始做这个参数判断就可以了
还有一个方法就是如果是特殊的需要在加载界面重新赋值,而不想触发相应事件的,就全局加一个Isload变量,进Load加载改为true,完成加载后置为false,然后在事件最开始做这个参数判断就可以了
#5
问题:如何使此控件所在窗体初始化完成之前,不触发这些繁琐的操作?
窗体都还没有初始化 也就是说那个时候 也许你的控件 根本对于窗体来说不存在
而且 是什么样子的操作 非要让你关系到窗体初始化的前后?还是说 逻辑上处理本身就不合理?
你控件.Parent 可以得到你控件所在的上层容器 当 xx.Parent.Parent....Parent = null 时候 就说明前一个Parent是窗体了
得到窗体了 你自己再从窗体中获取一些信息吧
窗体都还没有初始化 也就是说那个时候 也许你的控件 根本对于窗体来说不存在
而且 是什么样子的操作 非要让你关系到窗体初始化的前后?还是说 逻辑上处理本身就不合理?
你控件.Parent 可以得到你控件所在的上层容器 当 xx.Parent.Parent....Parent = null 时候 就说明前一个Parent是窗体了
得到窗体了 你自己再从窗体中获取一些信息吧
#6
#7
感觉控件设计有问题了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
#8
感觉控件设计有问题了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
对,我就是在属性变更的时候触发一个自定义事件的,在事件过程中处理一些复杂操作。。
我觉得还是需要考虑初始化判断的,在窗体初始化过程中,会修改自定义控件的属性值,同样会触发事件。
#9
感觉控件设计有问题了
控件基本不会有任何繁琐操作的,繁琐的操作应该留出事件
让引用控件的窗体去实现事件,在事件中进行繁琐操作
这样就不用考录什么初始化的时候各种判断了
对,我就是在属性变更的时候触发一个自定义事件的,在事件过程中处理一些复杂操作。。
我觉得还是需要考虑初始化判断的,在窗体初始化过程中,会修改自定义控件的属性值,同样会触发事件。
在事件实现的时候,先判断IsLoaded属性