急急急帮小弟解决很简单问题,送分
我做了一个Winform
Form1是我的用户登陆已经没有问题~
Form2是我的主 页面,但是我想通过用户登陆的权限不同进入。分为普通用户和会员
如果是会员进入Form2可以应用所有的功能。
如果是普能用户有的功能将不可用。
我 现在出现的问题是不能在通过判断权限来让哪个控件可用哪个控件不可用。
请大家帮着解决一下好吗?
详细点最好。谢谢
问题点数:100、回复次数:15Top
1 楼fengqinggao(风清高)回复于 2006-12-03 08:40:29 得分 0
设置一个bool变量,会员设1,普通用户设0
然后在Form2的On_Load函数里,根据0、1设置那些会员才有的控件的状态,如textBox1.Enable=false,大体这个思路能解决问题了Top
2 楼c_sharp_net()回复于 2006-12-03 09:12:17 得分 0
但是在判断的时候不对啊。能说的详细些吗?
我是新手
非常感谢
Top
3 楼lxcnn(过客)回复于 2006-12-03 09:43:52 得分 0
在创建用户的同时为每一个用户分配一个bool型的变量,比如说bool vip,标识是否为会员,是会员值为true,不是则为false,当用户通过Form1验证后,取出该用户的vip变量,在Form2_Load里判断
private void Form2_Load(object sender, EventArgs e)
{
if(vip)
{
button1.enable = true;
}
else
{
button1.enable = false;
}
}
Top
4 楼liujia_0421(SnowLover)回复于 2006-12-03 11:40:37 得分 0
你的权限是通过什么管理的,数据库?还是就是简单的设置?
如果做得简单点,可以通过楼上说的设置标志,在Form_load时来设定...
Top
5 楼bbdog(贝贝狗)回复于 2006-12-03 13:08:31 得分 0
看看knight94的blog,里面有提到解决方案。Top
6 楼bjgzxx(食人一族)回复于 2006-12-03 13:31:39 得分 0
楼上说的差不多了应该就这么解决的Top
7 楼free_wang()回复于 2006-12-03 13:37:48 得分 0
顶Top
8 楼huohonglong()回复于 2006-12-03 13:54:18 得分 0
private void Form2_Load(object sender, EventArgs e)
{
if(vip)
{
button1.enable = true;
}
else
{
button1.enable = false;
}
}
这个写的不错,你可以试试。好好研究一下Top
9 楼litaoye()回复于 2006-12-03 19:16:42 得分 0
我估计困扰楼主的应当是form之间传递参数的问题,具体实现大家已经讲得差不多了,楼主照着办就好了。关键是在form2中定义一个public static变量,比如:
public static int userLevel;
在form1判断完用户级别之后,改变form2的这个变量
form2.userLevel = 1;
然后在Load form2的时候判断即可!Top
10 楼dyhjjk(西门吹雪)回复于 2006-12-03 20:23:25 得分 0
楼上说的都很详细了。我也说点我的想法。设计数据库的时候在用户字段里面加个标志字段。在用户登录的时候一定会查询用户表的此时标志字段可一并查出。然后判断下 是哪种用户。然后执行不同的代码。Top
11 楼llqqff(玩猫来玩玩)回复于 2006-12-03 22:05:07 得分 0
能否建一权限数据库,把USER和form编码进取。Top
12 楼doocoo(DooCoo)回复于 2006-12-03 22:30:20 得分 0
做一个方法
public CheckPermission(int user_id,string ControlName)
{
//取得用户等级
//取得Control所需等级
//判断用户等级是否符合control的要求
if(Valid)
return true;
else
return false;
}
程序中:
form1.Load(....)
{
...
foreach(Control ctr in this.Controls){
control.Enabled=CheckPermission(userid,ctr.Name)
...
}
而在数据库中,保存每个control的名称和它们所需的权限
这种方式可以对每个control的权限进行限定,但是如果你有大量的控件,又不是每个控件都要做限定,效率就不高了,直接Button1.Enabled=CheckPermission(userid,Button1.Name)这样就可以了Top
13 楼doocoo(DooCoo)回复于 2006-12-03 22:36:10 得分 0
传递ID的问题,可以将Form1做成一个dialog,启动项设为Form2,Form2在Load的时候new并show()一个Form1,给Form1加一个属性public UserID{get{return userid;}},Form1成功确认身份以后,在Form2里面加一个int userID,然后
if(Form1.DialogResult==DialogResult.OK)
this.userID=Form1.Form1.UserID;
else
...
Form1.dispose();Top
14 楼SmallMummy(爬山真累人~!)回复于 2006-12-03 22:49:28 得分 0
都说完了。。。。。。
顶下Top
15 楼superxiaomm(小美)回复于 2006-12-04 14:10:30 得分 0
建议封装个user类Top




