private void ValueDisplayer_StateChanging(NuGenValueDisplayer sender, ValueDisplayerState state, int stepCount) { switch (state) { case ValueDisplayerState.Initialize: InvokeDisplayEvaluationState("Initializing a new thread to inspect the value...", stepCount); break; case ValueDisplayerState.StartThread: InvokeStepEvaluationProgress(); InvokeDisplayEvaluationState("Starting new thread to inspect the value...", stepCount); break; case ValueDisplayerState.CollectTypeInformation: InvokeStepEvaluationProgress(); InvokeDisplayEvaluationState("Collecting information about the base types of the value...", stepCount); break; case ValueDisplayerState.EvaluateArrayElements: InvokeStepEvaluationProgress(); InvokeDisplayEvaluationState("Evaluating elements of the array value...", stepCount); break; case ValueDisplayerState.EvaluateStringValue: InvokeStepEvaluationProgress(); InvokeDisplayEvaluationState("Evaluating string value...", stepCount); break; case ValueDisplayerState.EvaluateFields: InvokeStepEvaluationProgress(); InvokeDisplayEvaluationState("Evaluating fields of the object value...", stepCount); break; case ValueDisplayerState.EvaluateProperties: InvokeDisplayEvaluationState("Evaluating properties of the object value....", stepCount); break; case ValueDisplayerState.EvaluateToString: InvokeDisplayEvaluationState("Evaluating ToString() method of the object value...", stepCount); break; case ValueDisplayerState.Finish: string message = "Evaluation of the value is finished."; if (MissingModules.Count > 0) { message += " Not every information is displayed because some modules are not added to the project!"; } InvokeDisplayEvaluationState(message, stepCount); InvokeEnableControlsForEvaluation(true); break; case ValueDisplayerState.Interrupted: InvokeDisplayEvaluationState("Evaluation of the value has been stopped by the user, therefore not every information is displayed!", stepCount); InvokeEnableControlsForEvaluation(true); break; case ValueDisplayerState.MethodCallAbortFailed: InvokeDisplayEvaluationState("Not every information is displayed because aborting an evaluation failed. Both the debugger and the debuggee can be in an unstable state!", stepCount); InvokeEnableControlsForEvaluation(true); break; } UpdateCancelEvaluation(sender); }