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); }
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("成功删除!"); }