Tengo un proyecto C# WinForms que es muy parecido a un asistente en su funcionalidad. Los pasos individuales viven en una clase llamada StepPanel, que hereda del control Panel, dentro del formulario y esos paneles están organizados en una matriz.¿Cuándo es Control.Visible = true resulta ser falso?
Lo que me he encontrado es que cuando se llama a UpdateUI() y recorre la matriz, se ajusta el texto de título del paso de asistentes para el paso actual, se asegura de que todos los pasos inactivos estén ocultos y garantiza que el paso activo es visible, en el lugar correcto y tiene el tamaño correcto.
Aquí está el código:
private void UpdateUI()
{
// If the StepIndex equals the array length, that's our cue
// to exit.
if (StepIndex == Steps.Length)
{
Application.Exit();
return;
}
for (var xx = 0; xx < Steps.Length; xx++)
{
if (xx == StepIndex)
{
if (!String.IsNullOrEmpty(Steps[xx].Title))
{
LabelStepTitle.ForeColor = SystemColors.ControlText;
LabelStepTitle.Text = Steps[xx].Title;
}
else
{
LabelStepTitle.ForeColor = Color.Red;
LabelStepTitle.Text =
Resources.UiWarning_StepTitleNotSet;
}
}
else
{
Steps[xx].Visible = false;
}
}
Steps[StepIndex].Top = 50;
Steps[StepIndex].Left = 168;
Steps[StepIndex].Width = 414;
Steps[StepIndex].Height = 281;
Steps[StepIndex].Visible = true;
SetNavigationButtonState(true);
}
Cuando todo está dicho y hecho, Pasos [StepIndex] .Visible == false.
Todavía estoy perplejo por este comportamiento porque estaba trabajando hace menos de 30 minutos.
¿Has cambiado algo en los últimos 30 minutos? – Beth
Sí, está en desarrollo activo en este momento. – amber
¿Qué hace el método 'SetNavigationButtonState'? –