Если флажок установлен в сетке данных в C # - PullRequest
0 голосов
/ 15 июня 2011

На форме 2 в поле таблицы данных у меня есть «admin», который является флажком. Когда я звоню form2 из form1 Я хочу сначала проверить, проверил ли ЭТОТ пользователь (который вошел в систему) поле «admin». Если да, предоставьте пользователю доступ к form2, иначе вернитесь к form1 с окном сообщения, объясняющим, что у пользователя нет доступа.

Должна ли проверка "если проверено" находиться на загрузке формы 2?

РЕДАКТИРОВАТЬ: это можно сделать как:

form1:
  call form2 function test

form2:
    function test that checks if the current user has checked the checkbox in the datagrid

Ответы [ 3 ]

0 голосов
/ 15 июня 2011

Есть два варианта.Во-первых, прочитайте состояние из DataGrid в CheckBox как:

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

Или вы должны TypeCast:

if ((CheckBox)GridView.Rows[0].Cells[Index.Of.CheckBox]).Checked)
    DoWhatEverYouWant
0 голосов
/ 15 июня 2011

Нет, если вы выполните проверку в Load, то у вас, вероятно, будут проблемы с предотвращением появления формы.

Вместо этого поместите метод в Form1, который будет выполнять проверку, или покажет Form2?Таким образом, весь ваш код, который будет отображать форму Form2, может получить выгоду от одной и той же проверки.

public class Form1
{
   ...
   public void ShowAdminForm2()
   {
      if (!chkAdmin.IsChecked)
         MessageBox.Show ("Not admin");
      else
         new Form2().ShowDialog();
   }
}
0 голосов
/ 15 июня 2011

Из того, что я понимаю, к тому, что вы спрашиваете, есть разные способы сделать это.Вы можете проверить событие загрузки form2, если у пользователя есть права администратора, или вы можете выполнить проверку из form1 и проверить, есть ли у пользователя права администратора, прежде чем создавать экземпляр формы 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...