public FormModelEdit(IDataFile _db, string _dbName)
            : base("Model Edit", true)
        {
            db     = _db;
            DbName = _dbName;
            Model  = _db.GetModel(_dbName);

            ClientSize = new Size(fWidth, fHeight);

            init_Control();
        }//end function init()
        public FormItemEdit(IDataFile _db, string dbName, object _itemEdit)
            : base("EDIT ITEM SELECTED", true)
        {
            ItemEdit = _itemEdit;
            int _Hi = 0;

            db         = _db;
            ClientSize = new Size(fWidth, Screen.PrimaryScreen.WorkingArea.Height - 80);
            Top        = 40;

            ////////////////////////////////////////////////////////////////////////////////

            var model = db.GetModel(dbName);

            #region [ === CONTROLS UI === ]

            boi_Filter = new FlowLayoutPanel()
            {
                Dock          = DockStyle.Fill,
                AutoScroll    = true,
                WrapContents  = true,
                Padding       = new Padding(0),
                BackColor     = Color.WhiteSmoke,
                FlowDirection = FlowDirection.LeftToRight,
            };
            boi_Filter.MouseDown += FormMove_MouseDown;

            var  fields   = model.FIELDS.Where(x => x.IS_KEY_AUTO == false).OrderBy(x => x.ORDER_EDIT).ToArray();
            Type typeItem = ItemEdit.GetType();
            for (int ki = 0; ki < fields.Length; ki++)
            {
                var fd = fields[ki];
                var po = typeItem.GetProperty(fd.NAME);
                if (po != null)
                {
                    fd.Value = po.GetValue(ItemEdit, null);
                }
                var uc = new ucDataItemEdit(dbName, ki, fd, _db, this)
                {
                    Name = "uc" + ki.ToString(),
                };
                uc.Height = uc._Height;
                uc.Width  = uc._Width;
                boi_Filter.Controls.Add(uc);
            }

            int kitMin = ((fields.Select(x => x.KIT).Where(x => x != ControlKit.HTML && x != ControlKit.TEXTAREA)
                           .Count() / 2) + 1);
            int hi_Min = (kitMin * ucDataItemAdd.Height_Min) + (kitMin * 10);
            int hi_Max = fields.Select(x => x.KIT).Where(x => x == ControlKit.TEXTAREA)
                         .Count() * ucDataItemAdd.Height_Max;
            int hi_Full = fields.Select(x => x.KIT).Where(x => x == ControlKit.HTML)
                          .Count() * ucDataItemAdd.Height_Full;
            _Hi = hi_Min + hi_Max + hi_Full + 60;

            Panel boi_Action = new Panel()
            {
                Dock = DockStyle.Bottom, Height = 25
            };
            Button btn_DataTest = new Button()
            {
                Dock = DockStyle.Right, Text = "FILL DATA TEST", BackColor = Color.WhiteSmoke, Width = 123, TextAlign = ContentAlignment.MiddleCenter
            };
            Button btn_Submit = new Button()
            {
                Dock = DockStyle.Right, Text = "SUBMIT", BackColor = Color.WhiteSmoke, Width = 60, TextAlign = ContentAlignment.MiddleCenter
            };
            Button btn_Reset = new Button()
            {
                Dock = DockStyle.Right, Text = "RESET", BackColor = Color.WhiteSmoke, Width = 60, TextAlign = ContentAlignment.MiddleCenter
            };
            boi_Action.Controls.AddRange(new Control[] { btn_DataTest, btn_Submit, btn_Reset });
            boi_Action.MouseDown += FormMove_MouseDown;

            this.Controls.AddRange(new Control[] { boi_Filter, boi_Action });
            boi_Action.BringToFront();
            boi_Filter.BringToFront();
            btn_Submit.Focus();

            #endregion

            if (_Hi < Screen.PrimaryScreen.WorkingArea.Height)
            {
                if (_Hi < 200)
                {
                    _Hi = 200;
                }
                ClientSize = new System.Drawing.Size(fWidth, _Hi);
            }

            btn_Submit.Click   += (se, ev) => form_Submit(dbName);
            btn_DataTest.Click += (se, ev) => fill_DataTest();

            HideScrollBar(boi_Filter.Handle, ScrollBarHide.SB_HORZ);

            ////////////////////////////////////////////////////////////////////////////////
        }
        public FormItemAdd(IDataFile _db, string dbName)
            : base(true)
        {
            int _Hi = 0;

            db         = _db;
            ClientSize = new Size(fWidth, Screen.PrimaryScreen.WorkingArea.Height - 80);
            Top        = 40;

            var model = db.GetModel(dbName);

            #region [ === CONTROLS UI === ]

            FlowLayoutPanel boi_Filter = new FlowLayoutPanel()
            {
                Dock          = DockStyle.Fill,
                AutoScroll    = true,
                WrapContents  = true,
                Padding       = new Padding(0),
                BackColor     = Color.WhiteSmoke,
                FlowDirection = FlowDirection.LeftToRight,
            };
            boi_Filter.MouseDown += FormMove_MouseDown;

            var fields = model.Fields.Where(x => x.IsKeyAuto == false).ToArray();

            for (int ki = 0; ki < fields.Length; ki++)
            {
                var uc = new ucDataItemAdd(ki, fields[ki])
                {
                    Name = "uc" + ki.ToString(),
                };
                uc.Height = uc._Height;
                uc.Width  = uc._Width;
                boi_Filter.Controls.Add(uc);
            }

            int kitMin = ((fields.Select(x => x.Kit).Where(x => x != ControlKit.HTML && x != ControlKit.TEXTAREA)
                           .Count() / 2) + 1);
            int hi_Min = (kitMin * ucDataItemAdd.Height_Min) + (kitMin * 10);
            int hi_Max = fields.Select(x => x.Kit).Where(x => x == ControlKit.HTML || x == ControlKit.TEXTAREA)
                         .Count() * ucDataItemAdd.Height_Max;
            _Hi = hi_Min + hi_Max + 60;

            Panel boi_Action = new Panel()
            {
                Dock = DockStyle.Bottom, Height = 25
            };
            Button btn_Submit = new Button()
            {
                Dock = DockStyle.Right, Text = "SUBMIT", BackColor = Color.WhiteSmoke, Width = 60, TextAlign = ContentAlignment.MiddleCenter
            };
            Button btn_Reset = new Button()
            {
                Dock = DockStyle.Right, Text = "RESET", BackColor = Color.WhiteSmoke, Width = 60, TextAlign = ContentAlignment.MiddleCenter
            };
            boi_Action.Controls.AddRange(new Control[] { btn_Submit, btn_Reset });
            boi_Action.MouseDown += FormMove_MouseDown;

            this.Controls.AddRange(new Control[] { boi_Filter, boi_Action });
            boi_Action.BringToFront();
            boi_Filter.BringToFront();
            btn_Submit.Focus();

            #endregion

            if (_Hi < Screen.PrimaryScreen.WorkingArea.Height)
            {
                if (_Hi < 200)
                {
                    _Hi = 200;
                }
                ClientSize = new System.Drawing.Size(fWidth, _Hi);
            }

            btn_Submit.Click += (se, ev) => form_Submit(dbName, boi_Filter);
            HideScrollBar(boi_Filter.Handle, ScrollBarHide.SB_HORZ);
        }