Пример #1
0
        private String SetValueWithEditor(int row, int col, String value)
        {
            MethodInfo setDataMethod = flexGrid.GetType().GetMethod("SetData",
                                                                    new Type[] { typeof(int), typeof(int), typeof(object) });
            Object cellStyle = ReflectionHelper.ReflectionHelper.InvokeMethod(flexGrid, "GetCellStyle", new object[] { row, col });
            Type   dataType  = null;

            if (cellStyle == null)
            {
                Object column = GetColumn(col);
                dataType = (Type)ReflectionHelper.ReflectionHelper.GetProperty(column, "DataType");
            }
            else
            {
                dataType = (Type)ReflectionHelper.ReflectionHelper.GetProperty(cellStyle, "DataType");;
            }
            if (dataType == typeof(bool))
            {
                if (value.ToLower() == "x" || value.ToLower() == "true" || value.ToLower() == "wahr" ||
                    value.ToLower().StartsWith("check"))
                {
                    ReflectionHelper.ReflectionHelper.InvokeMethod(flexGrid, "SetData", new object[] { row, col, true });
                    return(OperatorGenericCtrl.ReturnOK);
                }
                if (value.ToLower() == " " || value.ToLower() == "false" || value.ToLower() == "falsch" ||
                    value.ToLower().StartsWith("uncheck"))
                {
                    ReflectionHelper.ReflectionHelper.InvokeMethod(flexGrid, "SetData", new object[] { row, col, false });
                    return(OperatorGenericCtrl.ReturnOK);
                }
                return("Der Wert >" + value + "< kann nicht auf eine CheckBox-Zelle gesetzt werden");
            }
            else
            {
                Control editor = ReflectionHelper.ReflectionHelper.GetProperty(flexGrid, "Editor") as Control;
                if (editor != null)
                {
                    paramAction paramAction = new paramAction();
                    paramAction.PtHwnd = editor.Handle;
                    TricentisWindowFormCtrls.Operator op = new TricentisWindowFormCtrls.Operator(paramAction);
                    OperatorGenericCtrl genericCtrl      = op.getOperatorControl(paramAction);
                    if (genericCtrl != null)
                    {
                        genericCtrl.setValue(value, "");
                        return(OperatorGenericCtrl.ReturnOK);
                    }
                }
            }
            // default solution if no editor was found
            ReflectionHelper.ReflectionHelper.InvokeMethod(flexGrid, "SetData", new object[] { row, col, value });
            return(OperatorGenericCtrl.ReturnOK);
            //return "Fehler beim Editieren der Zelle des FlexGrid. Kann Zellen vom Typ >" + dataType.Name + "< nicht editieren";
        }
Пример #2
0
        public OperatorGenericCtrl getCustomControl(paramAction pa)
        {
            Control ctrl = Control.FromHandle(pa.PtHwnd);

            if (ctrl != null)
            {
                if (ctrl is MdiClient)
                {
                    return(new MdiClientControl(ctrl));
                }
                // Find Reflection Controls
                Type currType = ctrl.GetType();
                do
                {
                    Logger.Instance.Log(this, "Searching Custom Control for " + currType.FullName);
                    switch (currType.FullName)
                    {
                    case "lbase.ppj.common.Controls.clsTriCheck":
                        return(new TriCheckControl(ctrl));

                    case "PPJ.Runtime.Windows.C1RibbonBarEx":
                    case "C1.Win.C1Ribbon.C1Ribbon":
                        return(new C1Ribbon(ctrl));

                    //case "PPJ.Runtime.Windows.C1RibbonBarEx":
                    //  return new C1RibbonBarEx(ctrl);
                    case "C1.Win.C1FlexGrid.C1FlexGrid":
                        return(new C1FlexGrid(ctrl));

                    default:
                        Logger.Instance.Log(this, "No Control found for " + currType.FullName);
                        break;
                    }
                    currType = currType.BaseType;
                } while (currType != null && currType != typeof(Control));
            }
            return(null);
        }