本人想通过主页面上的菜单栏(见图)选择后,跳转到另一个窗口,并跳出相应的tabpage页面,请问怎么实现,是C#的。求解!最好仔细点,多谢!
菜单栏图片:
tabControl1控件:
以上2张图片不是在同一个窗体!!
设第一个图片的名字叫form1,第二个是form2,并把form2的tag设为0。
【tag在属性窗口中就可以设置】
form1中:
分别把部门设置、服装类别管理、奖惩类别管理三个菜单的tag的设为0,1,2。.
在form1中写入下面的函数:
private void openSetWindows(object sender, EventArgs e)
{
Form2 f = (Form2)Application.OpenForms["Form2"];
if (f == null)
{
f = new Form2();
}
f.Tag = (sender as ToolStripMenuItem).Tag;
f.Show();
}
把部门设置、服装类别管理、奖惩类别管理的click事件全部设为openSetWindows。把这几个字粘贴到click右边就行。如下图:
在form2中的shown事件中写入:
private void Form2_Shown(object sender, EventArgs e)
{
tabControl1.SelectedIndex = int.Parse(this.Tag.ToString());
}
就可以了。
这样,将自动打开对应的tabpage。
TabControl这个控件的SelectedPage 这边要怎么接受呢 ?或者说是怎么编写?我试了很多种都出不来结果。。。请指教
追答很简单的嘛,就是一个Int类型的参数,比如子窗体是Form2,那么找到它的构造函数,修改如下:
public Form2(int selected)
{
InitializeComponent();
this.tabControl1.SelectedIndex=selected;
}
调用的时候如下:
Form2 nForm=new Form2(1); //给它一个参数指定默认页面,1就是第二个,0就是第一个
nForm.Show();
再问下,,当跳出我选择的那个tabpage后,,我想另外两个页面设置为不可点击操作 怎么设置呀。。
追答稍微修改一下上面的代码就可以了,当然你也可以移除掉不想让用户点击的页面:
int _selected;
public Form2(int selected)
{
initializeComponent();
_selected=selected;
this.tabControl1.SelectedIndex=_selected;
}
private void tabControl1_SelectedIndexChanged(object sender,EventArgs e)
{
this.tabControl1.SelectedIndex=_selected;
}
_selected=selected;这样写是什么意思呀。。。谢谢你呀 ,,受教了。。还有个小问题问问你,,
我要分别从三张表中计算出 一个月的 “考勤工资”,"加工工资“ 和 ”基本工资“,然后再把这三个字段的内容 以及相应的员工的一些基本信息插入到工资表里去,sql语句应该怎么写啊。。
这样写的目的就是获取一个在构造函数中传递过来的参数的值,用于下面TabControl控件的选中项索引切换事件当中,因为在此事件中是访问不到selected这个参数的;
后一个问题是先用三条查询语句查出三个工资的值,然后再取得其它信息形成一条记录,最后一条插入语句插入到指定的表就可以。查询和插入语句网上一搜一大堆,习惯用三层架构,基本不写SQL语句的,就说下思路,语句你搜一下吧
我也是用三层架构,,只是想把 你说的三条查询语句和取得其他信息的一条记录 以及最后的一条插入语句 合并写成一条SQL语句,不想分这么多步来实现。。呵呵 。。不过,多谢你哈。。嘿嘿
追答写成一个方法,调用就完了
本回答被提问者采纳