Exemple #1
0
 private void bAdd_Click(object sender, EventArgs e)
 {
     AdvFilterBar bar = new AdvFilterBar
     {
         Name       = "bf" + _filterCount++,
         DataSource = _dataSource,
         Parent     = this.flowLayoutPanel1,
     };
 }
Exemple #2
0
        private void AdvFilterForm_Load(object sender, EventArgs e)
        {
            #region 加载保存的过滤
#if !DEBUG
            try
            {
#endif

            FilterProfile[] profile = LocalUserProfile.GetProfile <FilterProfile[]>(ClientInfo.CurrentUser.UserName, _listForm.GetType().FullName + "_AdvFilter");

            if (profile != null)
            {
                flowLayoutPanel1.Controls.Clear();

                foreach (FilterProfile p in profile)
                {
                    AdvFilterBar bar = new AdvFilterBar
                    {
                        Name       = "bf" + _filterCount++,
                        DataSource = _dataSource,
                    };
                    bar.Load += (object s, EventArgs ea) =>
                    {
                        AdvFilterBar b = (AdvFilterBar)s;
                        b.cmbField.SelectedValue    = p.SelectedField;
                        b.cNot.Checked              = p.NotChecked;
                        b.cmbOperator.SelectedValue = p.SelectedOperator;

                        if (b.ValueEditor is DateTimePicker dtp)
                        {
                            dtp.Value = Convert.ToDateTime(p.ValueObject);
                        }
                        else if (b.ValueEditor is RadioButton r)
                        {
                            if (Convert.ToBoolean(p.ValueObject))
                            {
                                r.Checked = true;
                            }
                            else
                            {
                                ((RadioButton)b.Controls[r.Name + 1]).Checked = true;
                            }
                        }
                        else if (b.ValueEditor is NumericUpDown n)
                        {
                            n.Value = Convert.ToDecimal(p.ValueObject);
                        }
                        else if (b.ValueEditor is TextBox t)
                        {
                            t.Text = p.ValueObject.ToString();
                        }
                    };

                    this.flowLayoutPanel1.Controls.Add(bar);
                }
            }
#if !DEBUG
        }

        catch { }
#endif
            #endregion
        }