public frm_CommDBObjectsSetting()
        {
            InitializeComponent();
            Type UseType = typeof(T);
            T    spc     = (T)Convert.ChangeType(Activator.CreateInstance(UseType), UseType);

            if (spc is iDbFile)
            {
                UseObject    = spc as iDbFile;
                strKey       = UseObject.strKey;
                strClassName = UseObject.strObjectName;
            }
            this.Text = string.Format("{0}管理器", strClassName);
        }
예제 #2
0
        void Init()
        {
            //picker = new StragsPicker(list.ToList<StragClass>());
            Type CurrType = typeof(T);
            T    Currobj  = (T)Activator.CreateInstance(CurrType);

            if (Currobj is iDbFile)
            {
                iDbFile  obj  = Currobj as iDbFile;
                List <T> list = obj.getAllListFromDb <T>();
                key = obj.strKey;
                AllowMutliSelect = obj.AllowMutliSelect;
                strClassName     = obj.strObjectName;
                AllList          = new Dictionary <string, T>();
                for (int i = 0; i < list.Count; i++)
                {
                    T            item = list[i];
                    MemberInfo[] info = CurrType.GetMember(key);
                    if (info == null || info.Length != 1)
                    {
                        throw new Exception(string.Format("定义的db存储类没有关键字变量{0}", key));
                    }
                    object val = null;
                    if (info[0].MemberType == MemberTypes.Property)
                    {
                        val = (info[0] as PropertyInfo).GetValue(item, null);
                    }
                    else
                    {
                        val = (info[0] as FieldInfo).GetValue(item);
                    }
                    if (val == null)
                    {
                        throw new Exception(string.Format("定义的db存储类关键字变量{0}值为空", key));
                    }
                    string keyval = val.ToString();
                    if (AllList.ContainsKey(keyval))
                    {
                        throw new Exception(string.Format("定义的db存储类没有关键字变量{0}的值{1}重复", key, keyval));
                    }
                    else
                    {
                        AllList.Add(keyval, item);
                    }
                }
            }
        }
        private void btn_Save_Click(object sender, EventArgs e)
        {
            iDbFile srp = null;

            srp = (iDbFile)this.propertyGrid1.SelectedObject;
            if (srp == null)
            {
                MessageBox.Show(string.Format("请先双击列表选择需要修改的{0}或点击新增按钮新建{0}!", strClassName));
                return;
            }
            ////if (Program.AllGlobalSetting.AllStrags.ContainsKey(srp))
            ////{
            ////    StragClass sc = Program.AllGlobalSetting.AllStrags[srp.GUID];
            ////    ////srp.StragName = sc.StragClassName;
            ////    ////srp.StragDescript = sc.StragScript;
            ////}
            if (!OuterList.ContainsKey(srp.strKeyValue()))
            {
                string keyval = srp.strKeyValue();
                OuterList.Add(keyval, (T)srp);
            }
            else
            {
                if (NewAPlan)
                {
                    MessageBox.Show(string.Format("该{0}已新建,标志错误!", strClassName));
                    return;
                }
                OuterList[srp.strKeyValue()] = (T)srp;
            }
            if (!SaveData())
            {
                return;
            }
            refreshGrid(OuterList);
            this.propertyGrid1.SelectedObject = null;
            this.propertyGrid1.Refresh();
            MessageBox.Show("保存成功!");
        }
        private void btn_delete_Click(object sender, EventArgs e)
        {
            iDbFile srp = this.propertyGrid1.SelectedObject as iDbFile;

            if (NewAPlan || srp == null)
            {
                MessageBox.Show(string.Format("请先双击列表选择需要删除{0}!", strClassName));
                return;
            }
            if (!OuterList.ContainsKey(srp.strKeyValue()))
            {
                MessageBox.Show(string.Format("{0}已不存在,点击确定后将更新视图", strClassName));
                refreshGrid(OuterList);
                return;
            }
            OuterList.Remove(srp.strKeyValue());
            if (!SaveData())
            {
                return;
            }
            refreshGrid(OuterList);
            MessageBox.Show("成功删除!");
        }