示例#1
0
        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;
        }
示例#2
0
        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");
            }
        }
示例#3
0
        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);
        }
示例#4
0
        /// <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;
                    }
                }
            }
        }
示例#5
0
        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;
                    }
                }
            }
        }