第⼀次做cs架构的c#程序,许多东西都⼀步步摸索,总结⼀些
经验如下:给初学者⼀些福⾳
1,⾸先是窗体之间的数据传递,以及关联窗体的控制?
⽗窗体⾥⾯new⼀个⼦窗体出来,把⼦窗体的构造函数设置为带参的,将⽗窗体的参数通过构造函数传递过去,如果关联窗体控制则直接将⽗窗体传递到⼦窗体中即可。
如下:
⽗窗体: FormMain frm = new FormMain(this);
frm.Owner = this;
frm.MdiParent = this.MdiParent;
frm.WindowState = FormWindowState.Maximized;
frm.Show();
⼦窗体: public FormMain(FormLogin f1)
{}
这样⼦窗体就可以操作⽗窗体以及⽗窗体的内容了
注:传递变量时必须设置变量是全局变量
2,菜单控件toolStripMenu,菜单元素中间可以添加分隔符:
像这样:就可以做出像浏览器⼀样的菜单样式图⽚传不上去很抱歉。
3,下拉列表框combox控件,如何取出控件的中选中元素的值呢?
menustrip和toolstrip分为两种⼀个是你⾃⼰直接输⼊添加的值:comboBoxStatus.SelectedItem.ToString()
⼀种是从数据库取来直接绑定数据源上的数据:comboBoxStore.Text.ToString()
如何绑定数据库中的数据到控件上呢?
取出数据库数据装⼊DataTable
comboBoxStore.DataSource = dt;
comboBoxStore.DisplayMember = dt.Columns[0].ToString();
这样就完成了绑定可以将数据库中取出的数据显⽰在combox空间中了
4,定时刷新,操作,timer控件
将enable属性设置为true,time开始使⽤,interval是刷新时间,每隔多长时间执⾏⼀次,ms为单位。将执⾏的逻辑,操作放⼊timer时间⾥
5,数据库多表关联语句,查订单,已下单的数据的订单以及订单详细,⽽⼀个订单号详细内容可能有很多,取出已下单的订单数据去重复:
sql语句:select distinct id ,[DingDanTime],[ZhuangTai],[UserID],地址,[FaPiao],
[ShouJianTel],[JinEr],[PayModel],[PayTime],[XingMing],积分 from
(select a.[ID] as id ,[DingDanTime],[ZhuangTai],[UserID],a.[Sheng]+a.[Shi]+a.[DiZhi] 地址,[FaPiao],
[ShouJianTel],[JinEr],[PayModel],[PayTime],[XingMing],a.[JiFen] 积分,c.MingCheng 名称,[Num],[Price]
from [W_DingDan] a join [W_DingDanProduct] b on a.ID=b.DingDanID left join [W_CaiPin_GouMai] c
on c.ID =b.ProductID
where a.[ZhuangTai]='已下单') s;
6,点击dataGridView控件点⿏标右键可以选择操作(添加控件ContextMenuStrip)?
dataGridView的CellClick事件控制
dgvOrderDish.Rows[e.RowIndex].ContextMenuStrip = cmsStoreName;
dishOrderNo = dgvOrderDish.Rows[e.RowIndex].Cells["订单号"].Value.ToString();取出选中的单元格的值
点击控件的操作放在tsmiAssignStore_Click事件中ContextMenuStrip元素的click事件
7,tabControl控件
此控件的功能正在研究稍后再发