protected virtual void ReadStorableSettings(SettingsDictionaryGroup settingsGroup)
        {
            Location = settingsGroup.GetValue("Location", Location);

            Size = settingsGroup.GetValue("Size", Size);

            object controlsObj;

            if (settingsGroup.Dic.TryGetValue("Controls", out controlsObj))
            {
                if (controlsObj is Dictionary <string, object> )
                {
                    Dictionary <string, object> controls = (Dictionary <string, object>)controlsObj;

                    foreach (KeyValuePair <string, object> di in controls)
                    {
                        Control[] ctrls = Controls.Find(di.Key, true);
                        if (ctrls.Length != 1)
                        {
                            continue;
                        }
                        EhLib.WinForms.DataGridEh   grid            = ctrls[0] as EhLib.WinForms.DataGridEh;
                        Dictionary <string, object> controlSettings = di.Value as Dictionary <string, object>;
                        if (grid != null && controlSettings != null)
                        {
                            grid.ReadStorableSettings(controlSettings);
                        }
                    }
                }
            }
        }
 private void tsbPreview_Click(object sender, EventArgs e)
 {
     EhLib.WinForms.DataGridEh activeGrid = EhLib.WinForms.EhLibUtils.GetFocusControl() as EhLib.WinForms.DataGridEh;
     if (activeGrid != null)
     {
         gridPrintService.PrintPreview(activeGrid);
     }
 }
        protected virtual void ReadStorableSettings(Dictionary <string, object> settings)
        {
            object LanguageIdObj;

            if (settings.TryGetValue("LanguageId", out LanguageIdObj))
            {
                if (LanguageIdObj != null)
                {
                    LanguageId = LanguageIdObj.ToString();
                }
            }

            object locationObj;

            if (settings.TryGetValue("Location", out locationObj))
            {
                if (locationObj is Point)
                {
                    Location = (Point)locationObj;
                }
                else if (locationObj is Dictionary <string, object> )
                {
                    Dictionary <string, object> locDic = locationObj as Dictionary <string, object>;
                    object o;
                    Point  location = Location;
                    locDic.TryGetValue("X", out o);
                    if (o is int)
                    {
                        location.X = (int)o;
                    }
                    locDic.TryGetValue("Y", out o);
                    if (o is int)
                    {
                        location.Y = (int)o;
                    }
                    Location = location;
                }
            }

            object sizeObj;

            if (settings.TryGetValue("Size", out sizeObj))
            {
                if (sizeObj is Size)
                {
                    Size = (Size)sizeObj;
                }
                else if (locationObj is Dictionary <string, object> )
                {
                    Dictionary <string, object> sizeDic = sizeObj as Dictionary <string, object>;
                    object o;
                    Size   size = Size;
                    sizeDic.TryGetValue("Width", out o);
                    if (o is int)
                    {
                        size.Width = (int)o;
                    }
                    sizeDic.TryGetValue("Height", out o);
                    if (o is int)
                    {
                        size.Height = (int)o;
                    }
                    Size = size;
                }
            }

            object controlsObj;

            if (settings.TryGetValue("Controls", out controlsObj))
            {
                if (controlsObj is Dictionary <string, object> )
                {
                    Dictionary <string, object> controls = (Dictionary <string, object>)controlsObj;

                    foreach (KeyValuePair <string, object> di in controls)
                    {
                        Control ctl = FindSettingsControl(this, di.Key);
                        EhLib.WinForms.DataGridEh   grid            = ctl as EhLib.WinForms.DataGridEh;
                        Dictionary <string, object> controlSettings = di.Value as Dictionary <string, object>;
                        if (grid != null && controlSettings != null)
                        {
                            grid.ReadStorableSettings(controlSettings);
                        }
                    }
                }
            }
        }