最近一直在做WINFORM项目,所以经常有些新的想法或尝试与大家分享,之前与大家分享了通用窗体遮罩层、通用可附加数据绑定的DataGridView、窗体渐显,今天来分享一个大家在其它软件中常见的功能:数据过滤查询。先看一下我实现的的整体效果: 过滤之后:说一下实现上述功能的思 ...
最近一直在做WINFORM项目,所以经常有些新的想法或尝试与大家分享,之前与大家分享了通用窗体遮罩层、通用可附加数据绑定的Dataget='_blank'>GridView、窗体渐显,今天来分享一个大家在其它软件中常见的功能:数据过滤查询。
先看一下我实现的的整体效果:
过滤之后:
说一下实现上述功能的思路:
首先说一下界面的设计》
1.创建一个窗体(在此称作:过滤窗体FrmFilter),然后在窗体上部放一个DataGridView控件、下面放一个Panel,然后Panel中放两个按钮,至于如何更好的布局或是否需要适应窗体变化,这些都比较简单,在此就不介绍了;
2.设计DataGridView控件,分别加入4列(字段名、运算符、值、值2),其中字段名、运算符列需支持下拉,值、值2列需支持输入
界面设计很简单,现在说一下代码的实现,完整代如下:
using System;using System.Data;using System.Windows.Forms;using TEMS.Service;namespace TEMS.Forms{ public partial class FrmFilter : FormBase { private DataTable filterTable = null; /// <summary> /// 获取过滤条件的表格(zuowenjun.cn) /// </summary> public DataTable FilterTable { get { return filterTable; } } public FrmFilter(object source, string text, string value) { InitializeComponent(); dataGridFilter.AutoGenerateColumns = false; var col0 = dataGridFilter.Columns[0] as DataGridViewComboBoxColumn; col0.DataSource = source; col0.DisplayMember = text; col0.ValueMember = value; var col1 = dataGridFilter.Columns[1] as DataGridViewComboBoxColumn; col1.DataSource = FilterOperators.Operators; col1.DisplayMember = "Value"; col1.ValueMember = "Key"; InitFilterDataTable(); } private void InitFilterDataTable() { filterTable = new DataTable(); foreach (DataGridViewColumn col in dataGridFilter.Columns) { filterTable.Columns.Add(col.DataPropertyName,typeof(string)); } dataGridFilter.DataSource = filterTable; } private void btnOk_Click(object sender, EventArgs e) { this.Close(); } private void btnReset_Click(object sender, EventArgs e) { InitFilterDataTable(); this.Close(); } }}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:C#实现通用数据过滤窗体
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。