public void InitalizePanle(Type type, Control control, DataTable dataSource, int nRow, int nColumn) { _canRefresh = false; if (type == null) { return; } _dataSourceCtrl = control; _dataSource = dataSource; _nRow = nRow; _nColumn = nColumn; // 当前来源值 int nMaskValue = 0; if (control is DataGridView) { nMaskValue = (int)((control as DataGridView).Rows[nRow].Cells[nColumn].Value); // } else { nMaskValue = (int)dataSource.Rows[nRow][nColumn]; } this.Text = WrapperReflection.getDesc(type); // 处理文本显示 Dictionary <int, string> dic = GetNVCFromEnumValue(type); //var list = dic.OrderBy(s => s.Key); for (int i = 0; i < _checkboxes.Count; ++i) { int nVal = (int)_checkboxes[i].Tag; if (dic.ContainsKey((int)_checkboxes[i].Tag)) { _checkboxes[i].Text = dic[nVal]; _checkboxes[i].Visible = true; } else { _checkboxes[i].Text = ""; _checkboxes[i].Visible = false; } } // 处理数值 for (int i = 0; i < _checkboxes.Count; ++i) { int nValue = (int)(_checkboxes[i].Tag); _checkboxes[i].Checked = ((nValue & nMaskValue) == nValue); } _canRefresh = true; }
private void ConditionSerachIDButton_Click(object sender, EventArgs e) { //Table索引 DataTable FoundTable = null; //Table的行索引 int Rowindex = 0; bool bFound = false; foreach (DataTable ta in mConditionSet.Values) { FoundTable = ta; foreach (DataRow dr in FoundTable.Rows) { if (dr[0].Equals(SerachID)) { bFound = true; break; } Rowindex++; } if (bFound) { break; } Rowindex = 0; } if (bFound) { string tableName = mConditionReSet[FoundTable]; Type t = WrapperReflection.gAssembly.GetType(ServerWapperConditionNameSpace + tableName); if (t == null) { t = WrapperReflection.gAssembly.GetType(ClientWapperConditionNameSpace + tableName); if (t == null) { return; } } this.ConditionDesc.Text = WrapperReflection.getDesc(t); ConditionSerachBox.Text = WrapperReflection.getDesc(t); DataTableSerializer.BuildDataGridViewFromDataTable(ref conditionList, mConditionSet[tableName], t); DataTableSerializer.FillDataGridViewFromDataTable(ref conditionList, mConditionSet[tableName]); DataTableSerializer.AddButtonToDataGridView(ref conditionList, InsetButtonHeaderText, InsetButtonHeaderText, ConditionInsetButtonCallBack); conditionList.Rows[Rowindex].Selected = true; } else { Trace.Error("找不到条件ID"); } }
private bool LoadConditionTypes() { this.conditionSelect.Columns.Add("名称", 200); Type[] types = WrapperReflection.gAssembly.GetTypes(); { string[] str = new string[2] { "-服务器", "-客户端" }; foreach (var t in types) { if (t.Name.IndexOf(WapperConditionKey1) == 0 || t.Name.IndexOf(WapperConditionKey2) >= 0) { ListViewItem item = new ListViewItem(new string[] { t.Name }); string s = t.Name.ToLower(); string ex = s.Contains("client") ? str[1]:str[0]; conditionSelect.Items.Add(WrapperReflection.getDesc(t) + ex); conditionSelectList.Add(WrapperReflection.getDesc(t) + ex); m_ConditionType.Add(t.Name, t); m_ConditionDesc_Name.Add(WrapperReflection.getDesc(t) + ex, t.Name); m_ConditionName_Desc.Add(t.Name, WrapperReflection.getDesc(t) + ex); } if (t.Name.IndexOf(WapperConditionKey1) == 0 || t.Name.IndexOf(WapperConditionKey2) >= 0) { DataTable dt = new DataTable(); FieldInfo[] fields = t.GetFields(); AddTableEvent(dt); foreach (FieldInfo f in fields) { DataColumn dc = dt.Columns.Add(f.Name, f.FieldType); dc.Caption = WrapperReflection.getFieldDesc(f); } //第一列是ID,不能在编辑器中编辑,所以是只读的 dt.Columns[0].ReadOnly = true; mConditionSet.Add(t.Name, dt); mConditionReSet.Add(dt, t.Name); } } } this.FormClosing += ConditionForm_FormClosing; ////默认选中第一个 //this.conditionSelect.Focus(); //this.conditionSelect.Items[0].Selected = true; return(true); }
/// <summary> /// 选择条件名 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void conditionSelect_SelectedIndexChanged(object sender, EventArgs e) { if (this.conditionSelect.SelectedItems.Count <= 0) { return; } string strName = this.conditionSelect.SelectedItems[0].Text; strName = m_ConditionDesc_Name[strName]; Type t = WrapperReflection.gAssembly.GetType(ServerWapperConditionNameSpace + strName); if (t == null) { t = WrapperReflection.gAssembly.GetType(ClientWapperConditionNameSpace + strName); if (t == null) { return; } } this.ConditionDesc.Text = WrapperReflection.getDesc(t); nSelectedName = strName; DataTableSerializer.BuildDataGridViewFromDataTable(ref conditionList, mConditionSet[strName], t); DataTableSerializer.FillDataGridViewFromDataTable(ref conditionList, mConditionSet[strName]); DataTableSerializer.AddButtonToDataGridView(ref conditionList, InsetButtonHeaderText, InsetButtonHeaderText, ConditionInsetButtonCallBack); //显示到需要编辑的那一行 if (EditConditonID != UInt32.MaxValue) { DataTable tb = mConditionSet[strName]; for (int i = 0; i < tb.Rows.Count; i++) { DataRow dr = tb.Rows[i]; uint ut; if (!UInt32.TryParse(dr[0].ToString(), out ut)) { break; } if (ut == EditConditonID) { conditionList[0, i].Selected = true; break; } } } }
private void OnSelectEffect(string effectName) { effectName = m_EffectDesc_Name[effectName]; Type t = WrapperReflection.gAssembly.GetType(ServerWapperEffectNameSpace + effectName); if (t == null) { t = WrapperReflection.gAssembly.GetType(ClientWapperEffectNameSpace + effectName); if (t == null) { return; } } this.ConditionDesc.Text = WrapperReflection.getDesc(t); nSelectedName = effectName; DataTableSerializer.BuildDataGridViewFromDataTable(ref effectList, mEffectSet[effectName], t); DataTableSerializer.FillDataGridViewFromDataTable(ref effectList, mEffectSet[effectName]); DataTableSerializer.AddButtonToDataGridView(ref effectList, InsetButtonHeaderText, InsetButtonHeaderText, EffectInsetButtonCallBack); //显示到需要编辑的那一行 if (EditEffectID != UInt32.MaxValue) { DataTable tb = mEffectSet[effectName]; for (int i = 0; i < tb.Rows.Count; i++) { DataRow dr = tb.Rows[i]; uint ut; if (!UInt32.TryParse(dr[0].ToString(), out ut)) { break; } if (ut == EditEffectID) { effectList[0, i].Selected = true; break; } } } }