如果在C#中的数据网格中选中了复选框

本文关键字:网格 复选框 数据网 数据 如果 | 更新日期: 2023-09-27 17:59:20

在form2的数据网格字段中,我有一个复选框"admin"。当我从form1呼叫form2时我希望它首先检查THIS用户(已登录)是否已在字段"admin"中进行了检查。如果是,则授予用户访问表单2的权限,否则返回表单1并显示一个消息框,说明用户没有访问权限。

检查"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

如果在C#中的数据网格中选中了复选框

否,如果您在Load中执行检查,那么您可能会在阻止表单出现时遇到问题。

相反,将方法放在Form1上,它将执行检查或显示Form2?这样,所有想要显示Form2的代码都可以从相同的检查中受益。

public class Form1
{
   ...
   public void ShowAdminForm2()
   {
      if (!chkAdmin.IsChecked)
         MessageBox.Show ("Not admin");
      else
         new Form2().ShowDialog();
   }
}

从我的理解到你的要求,有多种方法可以做到这一点。如果用户有管理员访问权限,您可以检查form2的加载事件,或者在创建form2的实例之前,您可以从form1执行检查并检查用户是否有管理员访问权。

有两个选项。首先,将状态从DataGrid读取到类似于的复选框中

CheckBox.Checked = GridView.Rows[0].Cells[Index.Of.CheckBox]

或者你应该TypeCast:

if ((CheckBox)GridView.Rows[0].Cells[Index.Of.CheckBox]).Checked)
    DoWhatEverYouWant