切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
winform常用控件
作者:ych
### 时间选择器 #### DateTimePicke ##### 界面绑定value ``` 2022/4/24 ``` ##### 后端初始化设置时间 ``` dtp_send_end.Value= DateTime.Now.AddDays(1); dtp_send_start.Value = DateTime.Now.AddDays(-30); ``` ##### 格式化 ``` dtp_send_start.Value.Date.ToString("yyyy-MM-dd") ``` ### 下拉选择器 #### ComboBox ##### 界面绑定 DataBindings->Items ``` 已发送 未发送 ``` BackColor->ScrollBar DropDownStyle->DropDownList ##### 初始化 ``` cbb_email_state.SelectedIndex= 0; ``` ### 列表 #### DataGridView ##### 绑定 ``` string sql =String.Format("select id,tag,name,email,state,msg,create_date from send_email where {0} and create_date Between '{1}' AND '{2}'", whereSql, dtp_send_start.Value.Date.ToString("yyyy-MM-dd"), dtp_send_end.Value.Date.ToString("yyyy-MM-dd")); DataTable dt = sqlHelper.ExecuteQuery(sql); SendEmail[] data = new SendEmail[dt.Rows.Count]; int i = 0; foreach (DataRow dataRow in dt.Rows) { data[i] = new SendEmail(); data[i].id = Convert.ToInt32(dataRow[0]); data[i].tag = Convert.ToString(dataRow[1]); data[i].name = Convert.ToString(dataRow[2]); data[i].email = Convert.ToString(dataRow[3]); data[i].create_date = Convert.ToDateTime(dataRow[6]); i++; } dgv_send_email.DataSource = data; ``` #### 双击选中编辑 ``` private void dgv_tag_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { Tag data = (Tag)dgv_tag.SelectedRows[0].DataBoundItem; //获取选中行的数据 TagEdit tagEdit = new TagEdit(); tagEdit.IsInsert = false; tagEdit.EditingId = Convert.ToInt32(data.id); if (tagEdit.ShowDialog() == DialogResult.OK) { tag(); } } ``` ### excel导出 #### NPOI ``` private void btn_user_excel_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel文件(*.xls)|*.xls"; if (sfd.ShowDialog() != DialogResult.OK) { return; } string filename = sfd.FileName; HSSFWorkbook workbook = new HSSFWorkbook(); ISheet sheet1 = workbook.CreateSheet("用户数据"); IRow rowHeader = sheet1.CreateRow(0); rowHeader.CreateCell(0, CellType.String).SetCellValue("id"); rowHeader.CreateCell(1, CellType.String).SetCellValue("tag"); rowHeader.CreateCell(2, CellType.String).SetCellValue("name"); rowHeader.CreateCell(3, CellType.String).SetCellValue("email"); rowHeader.CreateCell(4, CellType.String).SetCellValue("create_date"); string sql = String.Format("select id,tag,name,email,create_date from user where create_date Between '{0}' AND '{1}'", dtp_start.Value.Date.ToString("yyyy-MM-dd"), dtp_end.Value.Date.ToString("yyyy-MM-dd")); DataTable dt = sqlHelper.ExecuteQuery(sql); for (int i = 0; i < dt.Rows.Count; i++) { IRow row = sheet1.CreateRow(i + 1); row.CreateCell(0, CellType.String).SetCellValue(Convert.ToInt32(dt.Rows[i][0])); row.CreateCell(1, CellType.String).SetCellValue(Convert.ToString(dt.Rows[i][1])); row.CreateCell(2, CellType.String).SetCellValue(Convert.ToString(dt.Rows[i][2])); row.CreateCell(3, CellType.String).SetCellValue(Convert.ToString(dt.Rows[i][3])); row.CreateCell(4, CellType.String).SetCellValue(Convert.ToString(dt.Rows[i][4])); } using (Stream stream = File.OpenWrite(filename)) { workbook.Write(stream); MessageBox.Show("用户信息导出成功!", "友情提示:"); } } ``` ### 另一页处理 #### 添加按钮 ``` private void btn_add_tag_Click(object sender, EventArgs e) { TagEdit tagEdit = new TagEdit(); tagEdit.IsInsert = true; if (tagEdit.ShowDialog() == DialogResult.OK) { tag(); } } ``` #### 编辑按钮 ``` private void btn_edit_tag_Click(object sender, EventArgs e) { if (dgv_tag.SelectedRows.Count !=1) { MessageBox.Show("请选择一个要编辑的行!", "提示:"); return; } Tag data = (Tag)dgv_tag.SelectedRows[0].DataBoundItem; //获取选中行的数据 TagEdit tagEdit = new TagEdit(); tagEdit.IsInsert = false; tagEdit.EditingId = Convert.ToInt32(data.id); if (tagEdit.ShowDialog() == DialogResult.OK) { tag(); } } ``` #### TagEdit页面 ``` public partial class TagEdit : Form { SQLiteHelper sqlHelper = new SQLiteHelper(); //是新增数据还是修改数据 public bool IsInsert { get; set; } //如果是编辑的话获取编辑行ID public int EditingId { get; set; } public TagEdit() { InitializeComponent(); } private void btn_save_Click(object sender, EventArgs e) { if (IsInsert) { string sql = String.Format("insert into tag(name,state) values('{0}',{1})", t_tag.Text , 0); int change = sqlHelper.ExecuteNonQuery(sql); } else { string sql = String.Format("update tag set name='{0}' where id= {1}", t_tag.Text, EditingId); int change = sqlHelper.ExecuteNonQuery(sql); } DialogResult = DialogResult.OK; } private void TagEdit_Load(object sender, EventArgs e) { if (!IsInsert) { string sql = String.Format("select name from tag where id= {0}", EditingId); string tag = (string)sqlHelper.ExecuteScalar(sql); t_tag.Text = tag; } } private void btn_close_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; } } ``` ### tab #### TabControl TabPages设置标签,Text对用户信息进行设置。 ``` private void tabControl_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl.SelectedTab.Text == "邮箱群发") { user_email(); } if (tabControl.SelectedTab.Text == "标签管理") { tag(); } if (tabControl.SelectedTab.Text == "邮箱设置") { emailConfig(); } if (tabControl.SelectedTab.Text == "用户信息") { user(); this.dtp_start.Format = DateTimePickerFormat.Custom; this.dtp_start.CustomFormat = "yyyy年MM月dd日"; //dtp_start.Text = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd HH:mm:ss"); dtp_start.Value = DateTime.Now.AddDays(-30); } } ``` ### 使用异步多线程更新界面UI #### 不带参数 ``` private void RecvMsg(string identify,string msg) { //异步更新界面UI Action showUi = () => { richTextBox1.Text += ($"id:{identify},msg:{msg}\r\n"); }; richTextBox1.Invoke(showUi); } ``` #### 带参数 ``` private void RecvMsg(string identify,string msg) { //异步更新界面UI传参 Action
showUi = (a,b) => { richTextBox1.Text += ($"id:{a},msg:{b}\r\n"); }; richTextBox1.Invoke(showUi,new object[] { identify, msg }); } ```
相关推荐
WinForm定时器
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1