如果在C#中的datagrid中选中了复选框

时间:2011-06-14 21:02:21

标签: c# winforms checkbox

在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

3 个答案:

答案 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();
   }
}