2015-05-25 2 views
0

У меня есть 2 формы: Вход (ребенок) и Form1 (как MdiParent).
Форма Войти имеет 3 роли, и каждая роль имеет различное управление доступом к MenuStripКак управлять menuStrip в Mdiparent из дочерней формы?

Пример: MenuStrip в Form1:

-file (login, logout) 
master (register, view) 

роли: администратор, тренер, стажера.
после входа в систему, меню, доступ к которому для администратора - это файл (вход в систему, выход из системы) и только мастер (просмотр).

Итак, мой вопрос заключается в том, как отключить/скрыть регистр меню для администратора в форме входа?

+1

WinForms или WebForms или что-то еще? Пожалуйста, опишите проблему более подробно. –

+0

это winForms. –

ответ

0

После бревен администратора в успешно, вы можете просто перейти к конкретному пункту меню вы хотите скрыть, его имя и установить его Visible свойство false:

((Form1)this.MdiParent).RegisterMenuItem.Visible = false; 

Вы должны убедиться, что пункт меню не является приватным. Он должен быть внутренним или общедоступным.

+0

Я пробовал. Элемент меню регистров (который мне нужно отключить от доступа администратора) не может быть доступен или управляться (его видимость) из дочерней формы. –

+0

см. Мой отредактированный ответ. –

+0

Как узнать, является ли пункт меню общедоступным или нет? bcs ive попробовал ваши коды раньше, это была ошибка, но все же администратор может получить доступ к меню регистров и его видимым для администратора (в то время как в этом случае мне нужно отключить доступ администратора для меню регистра) –

0

Один из способов сделать это, чтобы создать публичный метод в MDI форме, который содержит логику, чтобы отключить меню регистра, а затем вы называете его из регистрационной формы, как это:

В форме MDI:

public void DisableRegisterMenu() 
{ 
    registerMenuItem.Enabled = false; 
} 

В регистрационной форме:

var parent = (Form1) MdiParent; 
parent.DisableRegisterMenu(); 

/A

+0

ive тоже пробовал, но после входа в систему как admin , меню регистров все еще отображается и может быть доступно администратору. –

+0

Вы проверили, чтобы у вас не было кода сброса этого пункта меню в родительском объекте, который переписывается? –

+0

Извините, я не понимаю, что вы имеете в виду. Ive сделал это, но все же коды не работали. –

0
this is my login form codes : 

         if (count == 1) 
         { 

          UserInformation.CurrentLoggedInUser = (string)rdr["UserName"]; 
          MessageBox.Show("Welcome " + comboBox1.Text + UserInformation.CurrentLoggedInUser); 

          UserInformation.CurrentLoggedInUser = (string)rdr["UserRole"]; 
          if (UserInformation.CurrentLoggedInUser == "Administrator") 
          { 
           this.Close(); 
           this.MdiParent = new Form1(); 
           // ((Form1)this.MdiParent).hide(); 
           //((Register_Training_Participant)this.MdiParent).Hide(); 
           var parent = (Form1)MdiParent; 
           parent.AdminDisableControl(); 


          } 

//this is the code for my mainform : 
public void AdminDisableControl() 
     { 
      regToolStripMenuItem.Visible = false; 

     } 
Смежные вопросы