public override string setValue(string val, string steering) { String[] parameters = val.Split(";".ToCharArray()); if (parameters.Length == 3) { String rowStr = parameters[0]; String colStr = parameters[1]; int visibleRowIndex, visibleColIndex; String value = parameters[2]; bool hasValue = false; if (!String.IsNullOrEmpty(value)) { if (!value.Trim().StartsWith("{") && !value.Trim().EndsWith("}")) { hasValue = true; } else { value = value.ToLower().Substring(value.IndexOf('{') + 1); value = value.Substring(0, value.IndexOf('}')); if (value.EndsWith("click")) { steering = value; value = String.Empty; } } } if (int.TryParse(rowStr, out visibleRowIndex) && int.TryParse(colStr, out visibleColIndex)) { // first we have to find the real indexes for rows and cols if (flexGrid.Name.ToLower().Equals("splitgrid")) { visibleRowIndex--; } int realRowIndex = wrapper.GetRealRowIndex(visibleRowIndex); int realColIndex = wrapper.GetRealColIndex(--visibleColIndex); if (!hasValue) { // it is a mouseSteering if (!String.IsNullOrEmpty(value)) { // on drag or drop we always use the first col for a doubleClick String expandCollapseValue = wrapper.GetHierarchieColValue(realRowIndex); if (expandCollapseValue != null) { String errorMsg = "Unbekanntes Handling: {" + value + "}"; switch (expandCollapseValue.Trim().ToLower()) { case "+": if (value == "expand") { realColIndex = 0; } else if (value == "collapse") { return(ReturnOK); } else { return(errorMsg); } break; case "-": if (value == "collapse") { realColIndex = 0; } else if (value == "expand") { return(ReturnOK); } else { return(errorMsg); } break; case "": return(ReturnOK); } steering = value; } else { return("Keine Spalte für Expand und Collapse gefunden"); } } Rectangle rect = wrapper.GetSteeringRectangle(realRowIndex, realColIndex, steering); if (!rect.IsEmpty) { if (rect.Width > 0 && rect.Height > 0) { if (HandleSteering(rect, steering)) { if (steering.ToLower() == "doubleclick") { return(ReturnCheckOKRectangle(rect)); } else { return(ReturnOK); } } else { return("Unbekanntes Steering: >" + steering + "<"); } } else { return("Kein Rechteck zum Klicken vorhanden, Zelle ist unsichtbar"); } } return("Kein Rechteck zum Klicken vorhanden"); } else { return(wrapper.SetValue(realRowIndex, realColIndex, value)); } } } // Wenn keine Zeile oder keine Spalte im TestStep eingetragen wurde: // Wir ignorieren alles, was aus dem TestStep kommt // und droppen auf die Zeile 0 und die Spalte 1 if (steering.ToLower() == "drop") { // Ermittle rect mit Zeile 0, Spalte 1: Rectangle rect = wrapper.GetSteeringRectangle(0, 1, steering); if (HandleSteering(rect, steering)) { return(ReturnOK); } } // da nichts mit SetValue in C1FlexGrid funktioniert hat: return("Fehler im SetValue von C1FlexGrid"); }