Detectar si el control está siendo creado
Algunas de las propiedades sólo son válidos cuando se compara con otras propiedades. Durante la inicialización es lógico permitir propiedades no válidas. Esta es la manera de comprobar si el control se inicializa.
tomemos, por ejemplo, un control que tiene el Mínimo, el Máximo, y el Valor de las propiedades (Int32).
la Lógica de los estados que la Mínima no debe ser mayor que el Máximo, y que el Valor debe estar dentro del rango Mínimo Máximo... Si se realiza un intento para establecer una propiedad a un ilógico valor es posible que desee plantear una excepción.
El problema es que como un escritor de un componente que no tiene ningún control sobre el fin de que el usuario establece o cambia las propiedades, y puede terminar con una sección de inicialización que se parece a esto:
myControl1.Valor = 1000
myControl1.Máximo = 2000
myControl1.Mínimo = 500
si los valores predeterminados para el control Mínimo=0, Máximo=10, el Valor=0, entonces es bastante obvio que la primera línea que establece el Valor de a 1000, se producirá un error.
Para superar este problema, puede utilizar el ISupportInitialize de la interfaz. Por ejemplo.....
las MyControl: Control, ISupportInitialize
{
Booleano isInitializing = false
Int32 mínimo = 0
valor Int32 = 0
Int32 máximo = 10
void ISupportInitialize.BeginInit()
{
isInitializing = true
}
void ISupportInitialize.EndInit()
{
isInitializing = false
}
las Int32 Mínimo
{
get {return mínimo }
{
if (!isInitializing)
{
Haga su validación aquí
}
mínimo = valor
}
}
}
El .NET framework va a revisar cada componente para ISupportInitialize antes de configurar sus propiedades, y si se admite realizará las siguientes
componente.BeginInit()
...conjunto de propiedades de componente...
componente.EndInit()
Detectar si el control esta siendo creado
Detectar si el control esta siendo creado : Multi-millones de consejos para hacer su vida mas facil.
Algunas de las propiedades solo son validos cuando se compara con otras propiedades. Durante la inicializacion es logico permitir propiedades no validas. Esta es la manera de comprobar si el control se inicializa.
tomemos, por ejemplo, un control que tiene el Minimo, el Maximo, y el Valor de las propiedades (Int32).
la Logica de los estados que la Minima no debe ser mayor que el Maximo, y que el Valor debe estar dentro del rango Minimo Maximo... Si se realiza un intento para establecer una propiedad a un ilogico valor es posible que desee plantear una excepcion.
El problema es que como un escritor de un componente que no tiene ningun control sobre el fin de que el usuario establece o cambia las propiedades, y puede terminar con una seccion de inicializacion que se parece a esto:
myControl1.Valor = 1000
myControl1.Maximo = 2000
myControl1.Minimo = 500
si los valores predeterminados para el control Minimo=0, Maximo=10, el Valor=0, entonces es bastante obvio que la primera linea que establece el Valor de a 1000, se producira un error.
Para superar este problema, puede utilizar el ISupportInitialize de la interfaz. Por ejemplo.....
las MyControl: Control, ISupportInitialize
{
Booleano isInitializing = false
Int32 minimo = 0
valor Int32 = 0
Int32 maximo = 10
void ISupportInitialize.BeginInit()
{
isInitializing = true
}
void ISupportInitialize.EndInit()
{
isInitializing = false
}
las Int32 Minimo
{
get {return minimo }
{
if (!isInitializing)
{
Haga su validacion aqui
}
minimo = valor
}
}
}
El .NET framework va a revisar cada componente para ISupportInitialize antes de configurar sus propiedades, y si se admite realizara las siguientes
componente.BeginInit()
...conjunto de propiedades de componente...
componente.EndInit()
Detectar si el control está siendo creado
By Consejos Y Trucos
Detectar si el control está siendo creado : Multi-millones de consejos para hacer su vida más fácil.