在datagrid字段中的form2上,我有一个“admin”,它是一个复选框。当我从form1调用form2时 我首先想要检查此用户(已登录)是否已在“admin”字段中签入。 如果是,则授予用户访问form2的权限,否则返回到form1,并带有一个消息框,说明用户无权访问。
如果检查“if has checked”是否在form2加载?
编辑:可以这样做:
form1:
call form2 function test
form2:
function test that checks if the current user has checked the checkbox in the datagrid
答案 0 :(得分:0)
从我的理解到你的要求,你可以通过各种方式做到这一点。如果用户具有管理员访问权限,您可以检查form2的加载事件,或者您可以从form1执行检查,并在创建form2实例之前检查用户是否具有管理员权限。
答案 1 :(得分:0)
有两种选择。首先,从DataGrid读取状态到CheckBox,如:
CheckBox.Checked = GridView.Rows[0].Cells[Index.Of.CheckBox]
或者你应该TypeCast:
if ((CheckBox)GridView.Rows[0].Cells[Index.Of.CheckBox]).Checked)
DoWhatEverYouWant
答案 2 :(得分:0)
不,如果您在加载中执行检查,那么您可能无法阻止表单出现。
相反,将方法放在Form1上将执行检查或显示Form2?这样,想要显示Form2的所有代码都可以从同一个检查中受益。
public class Form1
{
...
public void ShowAdminForm2()
{
if (!chkAdmin.IsChecked)
MessageBox.Show ("Not admin");
else
new Form2().ShowDialog();
}
}