private void UpdateVariableElements() { //Hide editor windows until we have a variable selected to work with grpNumericVariable.Hide(); grpBooleanVariable.Hide(); grpStringVariable.Hide(); var varType = 0; if (cmbVariable.SelectedIndex > -1) { //Determine Variable Type if (rdoPlayerVariable.Checked) { var playerVar = PlayerVariableBase.FromList(cmbVariable.SelectedIndex); if (playerVar != null) { varType = (byte)playerVar.Type; } } else if (rdoGlobalVariable.Checked) { var serverVar = ServerVariableBase.FromList(cmbVariable.SelectedIndex); if (serverVar != null) { varType = (byte)serverVar.Type; } } } //Load the correct editor if (varType > 0) { switch ((VariableDataTypes)varType) { case VariableDataTypes.Boolean: grpBooleanVariable.Show(); TryLoadVariableBooleanComparison(((VariableIsCondition)Condition).Comparison); break; case VariableDataTypes.Integer: grpNumericVariable.Show(); TryLoadVariableIntegerComparison(((VariableIsCondition)Condition).Comparison); UpdateNumericVariableElements(); break; case VariableDataTypes.Number: break; case VariableDataTypes.String: grpStringVariable.Show(); TryLoadVariableStringComparison(((VariableIsCondition)Condition).Comparison); break; default: throw new ArgumentOutOfRangeException(); } } }