form1和form2,数据库里面有一个power(权限)的字段,我从form1里面判断power=1的时候为最高权限,可以让form2的全部控件都可以实现
如果power为0的时候,跳转到form2的时候,部分控件为visible
就是这个让部分控件为visible该怎么写
if (dr.Read() == true)
{
f1 f = new f1();
f.Show();
this.Hide();
if (dr["Power"].ToString() == "1")
{}//这里需要怎样写才可以实现,希望各位解答一下!!!
}
20 个解决方案
#1
自己顶上先!!!希望有高手解答下!!!
#2
还是没有人回答,我再顶一下!!!
#3
怎么没人回答呢??
希望有人解答!!
希望有人解答!!
#4
你把FORM2里面相应的控件放在PANEL或GROUPBOX里面,这样判断的时候就可以,PANEL.VISIBLE=FALSE
#5
在form2窗体的初始化事件里面做判断 如果权限不够的话就把相应的enable 设为false 或者设visible也可以
#6
在form2.Designer.cs中把form2中的控件如button1设为public,visible:false。
if (dr.Read() == true)
{
f1 f = new f1();
f.Show();
this.Hide();
if (dr["Power"].ToString() == "1")
{
f.button1.Visible = true;
}//这里需要怎样写才可以实现,希望各位解答一下!!!
}
#7
不想让其显示的话,就设置Visible属性为false
bool Affir=false;
if (dr.Read() == true)
{
f1 f = new f1();
f.Show();
this.Hide();
if (dr["Power"].ToString() == "1")
{
f2 ff=new f2();
ff.Affir=true;
ff.Show(); //然后在f2窗体中把那些控件的 Visible属性设置为 Affir
}
}
#8
在控件窗口察看属性,每一个属性都可以通过代码来修改的
#9
最简单的就是写动态添加按钮啦
#10
在form2的构造函数里加参数,在new form2时将f1的值传人,然后在form2中做判断!
#11
我就常常这么干
#12
现有代码如下:
form1中
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read () )
{
mainform main = new mainform();
main.Show();
this.Hide();
power = dr[3].ToString().Trim ();
mainform.userpower = power;
mainform.A.power = power;
MessageBox.Show("登录成功!您的身份是" + power , "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
form2中
public static string userpower=null;
private void mainform_Load(object sender, EventArgs e)
{
系统控制ToolStripMenuItem.Enabled = false;
员工信息维护ToolStripMenuItem.Enabled = false;
培训计划制定ToolStripMenuItem.Enabled = false;
培训评价ToolStripMenuItem.Enabled = false;
员工信息查询ToolStripMenuItem.Enabled = false;
使用帮助ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = false;
Check();
}
switch (mainform .userpower )
{
case "系统管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.toolBar1.Enabled = true;
break;
}
case "普通管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.用户管理ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = true;
this.用户管理 .Enabled = false;
break;
}
case "普通用户":
{
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = false;
this.员工录入.Enabled = false;
this.用户管理.Enabled = false;
this.员工录入.Enabled = false;
this.数据分析.Enabled = false;
this.计划制定.Enabled = false;
break;
}
在程序运行的时候,case没有反映,就是出现的情况没有case里面的任何一种,就好像userpower里面没有值一样!!
form1中
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read () )
{
mainform main = new mainform();
main.Show();
this.Hide();
power = dr[3].ToString().Trim ();
mainform.userpower = power;
mainform.A.power = power;
MessageBox.Show("登录成功!您的身份是" + power , "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
form2中
public static string userpower=null;
private void mainform_Load(object sender, EventArgs e)
{
系统控制ToolStripMenuItem.Enabled = false;
员工信息维护ToolStripMenuItem.Enabled = false;
培训计划制定ToolStripMenuItem.Enabled = false;
培训评价ToolStripMenuItem.Enabled = false;
员工信息查询ToolStripMenuItem.Enabled = false;
使用帮助ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = false;
Check();
}
switch (mainform .userpower )
{
case "系统管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.toolBar1.Enabled = true;
break;
}
case "普通管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.用户管理ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = true;
this.用户管理 .Enabled = false;
break;
}
case "普通用户":
{
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = false;
this.员工录入.Enabled = false;
this.用户管理.Enabled = false;
this.员工录入.Enabled = false;
this.数据分析.Enabled = false;
this.计划制定.Enabled = false;
break;
}
在程序运行的时候,case没有反映,就是出现的情况没有case里面的任何一种,就好像userpower里面没有值一样!!
#13
这个问题该如何解决!!!
#14
我也是这样想的,顶了~~~~
#15
通过控件的Name属性找到控件,然后再根据Name对应的控件的 Visible属性控制该控件是否可见:例如
btn1.Visible=false;
text1.Visible=false;
panl.visible.false;
注意上边有人把控件的 Visible属性和Enabled 属性搞混了!Visible属性是控制控件是否可见,而Enabled 属性是控制该控件是否可用!这是两个完全不相同的概念,方法还可以,不过建议你使用Group或着panl容器,这样的话方便的很!
btn1.Visible=false;
text1.Visible=false;
panl.visible.false;
注意上边有人把控件的 Visible属性和Enabled 属性搞混了!Visible属性是控制控件是否可见,而Enabled 属性是控制该控件是否可用!这是两个完全不相同的概念,方法还可以,不过建议你使用Group或着panl容器,这样的话方便的很!
#16
其实可以定义一个全局变量在 Form1 的事件中保存 dr["Power"].ToString()的值,然后在Form2的Load事件中判断
dr["Power"].ToString()的值是否为“1”即可
dr["Power"].ToString()的值是否为“1”即可
#17
可以在form2里定义一个public变量,然后在new form2时,直接赋值就行
#18
原因已经找到了,我知道是什么原因了
#19
其实原因很简单,是因为位置调换了
在show之后才赋值,所以就show的时候没有赋值到,所以在form2就没有了!!
在show之后才赋值,所以就show的时候没有赋值到,所以在form2就没有了!!
#20
总结一下,这个问题就可以在form2定义个全局static字段,然后在form1里面需要传给form2的值传给给form2.字段名,就可以传给form2了,其次还有顺序的问题,就是要先传值,再显示,否则,显示不了。
#21
#1
自己顶上先!!!希望有高手解答下!!!
#2
还是没有人回答,我再顶一下!!!
#3
怎么没人回答呢??
希望有人解答!!
希望有人解答!!
#4
你把FORM2里面相应的控件放在PANEL或GROUPBOX里面,这样判断的时候就可以,PANEL.VISIBLE=FALSE
#5
在form2窗体的初始化事件里面做判断 如果权限不够的话就把相应的enable 设为false 或者设visible也可以
#6
在form2.Designer.cs中把form2中的控件如button1设为public,visible:false。
if (dr.Read() == true)
{
f1 f = new f1();
f.Show();
this.Hide();
if (dr["Power"].ToString() == "1")
{
f.button1.Visible = true;
}//这里需要怎样写才可以实现,希望各位解答一下!!!
}
#7
不想让其显示的话,就设置Visible属性为false
bool Affir=false;
if (dr.Read() == true)
{
f1 f = new f1();
f.Show();
this.Hide();
if (dr["Power"].ToString() == "1")
{
f2 ff=new f2();
ff.Affir=true;
ff.Show(); //然后在f2窗体中把那些控件的 Visible属性设置为 Affir
}
}
#8
在控件窗口察看属性,每一个属性都可以通过代码来修改的
#9
最简单的就是写动态添加按钮啦
#10
在form2的构造函数里加参数,在new form2时将f1的值传人,然后在form2中做判断!
#11
我就常常这么干
#12
现有代码如下:
form1中
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read () )
{
mainform main = new mainform();
main.Show();
this.Hide();
power = dr[3].ToString().Trim ();
mainform.userpower = power;
mainform.A.power = power;
MessageBox.Show("登录成功!您的身份是" + power , "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
form2中
public static string userpower=null;
private void mainform_Load(object sender, EventArgs e)
{
系统控制ToolStripMenuItem.Enabled = false;
员工信息维护ToolStripMenuItem.Enabled = false;
培训计划制定ToolStripMenuItem.Enabled = false;
培训评价ToolStripMenuItem.Enabled = false;
员工信息查询ToolStripMenuItem.Enabled = false;
使用帮助ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = false;
Check();
}
switch (mainform .userpower )
{
case "系统管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.toolBar1.Enabled = true;
break;
}
case "普通管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.用户管理ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = true;
this.用户管理 .Enabled = false;
break;
}
case "普通用户":
{
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = false;
this.员工录入.Enabled = false;
this.用户管理.Enabled = false;
this.员工录入.Enabled = false;
this.数据分析.Enabled = false;
this.计划制定.Enabled = false;
break;
}
在程序运行的时候,case没有反映,就是出现的情况没有case里面的任何一种,就好像userpower里面没有值一样!!
form1中
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read () )
{
mainform main = new mainform();
main.Show();
this.Hide();
power = dr[3].ToString().Trim ();
mainform.userpower = power;
mainform.A.power = power;
MessageBox.Show("登录成功!您的身份是" + power , "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
form2中
public static string userpower=null;
private void mainform_Load(object sender, EventArgs e)
{
系统控制ToolStripMenuItem.Enabled = false;
员工信息维护ToolStripMenuItem.Enabled = false;
培训计划制定ToolStripMenuItem.Enabled = false;
培训评价ToolStripMenuItem.Enabled = false;
员工信息查询ToolStripMenuItem.Enabled = false;
使用帮助ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = false;
Check();
}
switch (mainform .userpower )
{
case "系统管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.toolBar1.Enabled = true;
break;
}
case "普通管理员":
{
this.系统控制ToolStripMenuItem.Enabled = true;
this.员工信息维护ToolStripMenuItem.Enabled = true;
this.培训计划制定ToolStripMenuItem.Enabled = true;
this.培训评价ToolStripMenuItem.Enabled = true;
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = true;
this.用户管理ToolStripMenuItem.Enabled = false;
this.toolBar1.Enabled = true;
this.用户管理 .Enabled = false;
break;
}
case "普通用户":
{
this.员工信息查询ToolStripMenuItem.Enabled = true;
this.使用帮助ToolStripMenuItem.Enabled = false;
this.员工录入.Enabled = false;
this.用户管理.Enabled = false;
this.员工录入.Enabled = false;
this.数据分析.Enabled = false;
this.计划制定.Enabled = false;
break;
}
在程序运行的时候,case没有反映,就是出现的情况没有case里面的任何一种,就好像userpower里面没有值一样!!
#13
这个问题该如何解决!!!
#14
我也是这样想的,顶了~~~~
#15
通过控件的Name属性找到控件,然后再根据Name对应的控件的 Visible属性控制该控件是否可见:例如
btn1.Visible=false;
text1.Visible=false;
panl.visible.false;
注意上边有人把控件的 Visible属性和Enabled 属性搞混了!Visible属性是控制控件是否可见,而Enabled 属性是控制该控件是否可用!这是两个完全不相同的概念,方法还可以,不过建议你使用Group或着panl容器,这样的话方便的很!
btn1.Visible=false;
text1.Visible=false;
panl.visible.false;
注意上边有人把控件的 Visible属性和Enabled 属性搞混了!Visible属性是控制控件是否可见,而Enabled 属性是控制该控件是否可用!这是两个完全不相同的概念,方法还可以,不过建议你使用Group或着panl容器,这样的话方便的很!
#16
其实可以定义一个全局变量在 Form1 的事件中保存 dr["Power"].ToString()的值,然后在Form2的Load事件中判断
dr["Power"].ToString()的值是否为“1”即可
dr["Power"].ToString()的值是否为“1”即可
#17
可以在form2里定义一个public变量,然后在new form2时,直接赋值就行
#18
原因已经找到了,我知道是什么原因了
#19
其实原因很简单,是因为位置调换了
在show之后才赋值,所以就show的时候没有赋值到,所以在form2就没有了!!
在show之后才赋值,所以就show的时候没有赋值到,所以在form2就没有了!!
#20
总结一下,这个问题就可以在form2定义个全局static字段,然后在form1里面需要传给form2的值传给给form2.字段名,就可以传给form2了,其次还有顺序的问题,就是要先传值,再显示,否则,显示不了。