一个主窗体要有基本的菜单栏,工具栏,状态条,系统栏,右键菜单,鼠标提示…
1,主界面:MDI,IsMdiContianer = true,所有窗口的入口,媒介.一个项目只可有一个父容器
Form1 f = new Form();
f.MdiParent = this;//在父容器显示
ShowDialog();//模态窗口,写在模态窗口之后 的代码 必须等待窗口关闭之后才会执行,可以控制窗体每次只能打开一次。
Show();//按顺序。
2,常用属性
diplayStyle(字/图) textImageRelation(上下/左右)ImageScalingSize(工具栏大小)
3,修改逻辑(listView1) (用按钮点击修改)
a,选中一行数据(一次只可修改一行)
属性:FullRowSelect = true
//得到选中行的ID,选中行的第一列的值。
string ID = listView1.SelectedItems[0].SubItems[0].Text;
//得到选中行第二列的值。
string ch = listView1.SelectedItems[0].SubItems[1].Text;
b,打开修改数据,显示原始数据。
将listView的数据传入修改的窗口。
根据传来的数据利用ID来查询数据。
利用适配器和下拉框的高级绑定,在窗体加载是显示。
利用静态变量ID查到其它数据,用SqlDataReader();
读取一行数据。
//把查到的学生的原始数据,显示在对应的控件中
TXT_NAME.Text = sdr[1].ToString();
CBO_CLS.SelectedValue = sdr[2];
c,保存修改数据。增加
ExecutNonQuery();
d,//在一个页面关闭后,
//刷新
listView1.Items.Clear();
//在调用自己的方法显示修改的数据。
Form2_Load(null,null);
//下拉框 的高级绑定string sql = "select * from class";SqlConnection con = new SqlConnection(Program.address);//适配器操作SqlDataAdapter sda = new SqlDataAdapter(sql,con);//datatable是个多维数组,针对数据库的。存在客户端。DataTable dt = new DataTable();//适配器的填充操作。sda.Fill(dt);//绑定到datagridviewCBO_CLS.DataSource = dt;//下拉框要显示的时班级名CBO_CLS.DisplayMember = "className";//其实显示的是班级,但学生表只有classID,隐藏值CBO_CLS.ValueMember = "classID";con.Close();
Txt_Name.Text = dt.Rows[0][0].ToString();//数据库第一行第一列.取值。
Ps: listview 获取下标的方式
listview1.Items.IndexOf(listview1.FoucusedItem);//默认值时0
listview 判断是否有选中项
listview1.SelecteItem.Count > 0;