C # Войти с правами - PullRequest
       3

C # Войти с правами

0 голосов
/ 22 ноября 2011

Мне нужно подать заявление в школу, которое включает логин и права. Я проверяю логин и пытаюсь сохранить уровень пользователя в классе. Я пытался использовать глобальную переменную, но почему-то она не работает.

РЕДАКТИРОВАТЬ: Эта проблема частично решена. Открытие формы не. (Прочитайте последнюю часть)

Класс (уровень пользователя):

private static int ulevel = 99;

public static int gCheckLevel
{
    get { return ulevel; }
    set { ulevel = value; }
}

При входе в систему это произойдет:

userlevel.gCheckLevel = ulvl;
Main_MDI main = new Main_MDI();
main.mCommitRights();

Попытка открыть правильную форму после успешного входа в систему

Form start_screen_admin = new start_screen_admin();

public void mCommitRights()
{
    if (userlevel.gCheckLevel == 0)
    {
        // Admin, no changes
        MessageBox.Show("Admin");
        mForms(start_screen_admin);
    }
}

Но последняя часть не работает. Что я здесь не так делаю? Мне нужно сохранить уровень пользователя, потому что запросы к базе данных каждый раз, когда мне это нужно, не нужны.

EDIT:

Последняя часть не работает на 100%, глобальная работает, но mForms не работает, но она работает где-либо еще.

private void mForms(Form f)
{
    if (this.MdiChildren.Contains(f)) { f.WindowState = FormWindowState.Normal; }
    else { f.MdiParent = this; f.Show(); }
}

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Можете ли вы получить доступ к статическому свойству из экземпляра этого класса?Почему они статичны?Разве они не могут быть просто свойствами экземпляра?

MSDN говорит: «Статический метод, поле, свойство или событие можно вызвать в классе, даже если экземпляр класса не создан.любые экземпляры класса созданы, их нельзя использовать для доступа к статическому члену. Существует только одна копия статических полей и событий, а статические методы и свойства могут обращаться только к статическим полям и статическим событиям. Статические члены часто используются для представления данных.или вычисления, которые не изменяются в зависимости от состояния объекта, например, математическая библиотека может содержать статические методы для вычисления синуса и косинуса "

0 голосов
/ 22 ноября 2011

Вещи, которые вы можете проверить:

  • Определен ли класс userLevel как public static?
  • Имеет ли переменная ulvl при входе пользователяправильное значение (в данном случае 0): попробуйте установить userlevel.gCheckLevel = 0; напрямую и посмотреть, работает ли оно.Если это так, то ваша проблема связана с переменной ulvl.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...