Show / Hide Table of Contents

Практическое руководство. Блокировка доступа ко вкладкам

В некоторых случаях требуется ограничить доступ к данным, которые можно использовать в приложении Windows Forms. Примером этого могут быть, когда у вас есть данные, отображаемые на страницах вкладок элемента управления вкладки; Администраторы могут иметь сведения на странице вкладки, который требуется запретить гостей или пользователей более низкого уровня.

Чтобы отключить страницы вкладок программными средствами

  1. Написание кода для обработки элемента управления вкладка SelectedIndexChanged событий. Это событие, возникающее, когда пользователь переходит с одной вкладки к следующему.

  2. Проверьте учетные данные. В зависимости от представленной здесь информации, вы можете проверить имя пользователя, который пользователь вошел в систему или другие формы учетные данные перед предоставлением пользователю для просмотра на вкладке.

  3. Если пользователь имеет соответствующие учетные данные, отобразите вкладку, которая была нажата. Если пользователь не имеет соответствующие учетные данные, отобразить окно сообщения, или другой элемент пользовательского интерфейса, указывающий, что они не имеют доступ и вернуться на исходную вкладку.

    Note

    При реализации этой функции в приложении, можно выполнять проверку учетных данных во время формы Load событий. Это дает возможность скрыть вкладку до отображения пользовательского интерфейса, который является более понятную для программирования. Используемые ниже методы (проверка учетных данных и отключение вкладки в SelectedIndexChanged событий) для иллюстративных целей.

  4. При необходимости при наличии более двух страниц вкладок, отображения страницы вкладки, отличной от первоначальной.

    В следующем примере CheckBox элемент управления используется вместо проверки учетных данных, в качестве критерия для доступа к вкладке зависит от приложения. Когда SelectedIndexChanged событие возникает, если проверка учетных данных имеет значение true (то есть флажок установлен) и выбрана вкладка TabPage2 (вкладка с конфиденциальными данными, в этом примере), затем TabPage2 отображается. В противном случае TabPage3 отображается и отображается окно сообщения об отсутствии необходимых прав доступа. В приведенном ниже коде предполагается, что форма CheckBox управления (CredentialCheck) и TabControl элемента управления с тремя вкладками.

    Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged  
       ' Check Credentials Here  
    
       If CredentialCheck.Checked = True And _   
       TabControl1.SelectedTab Is TabPage2 Then  
          TabControl1.SelectedTab = TabPage2  
       ElseIf CredentialCheck.Checked = False _   
       And TabControl1.SelectedTab Is TabPage2 Then  
          MessageBox.Show _   
         ("Unable to load tab. You have insufficient access privileges.")  
          TabControl1.SelectedTab = TabPage3  
       End If  
    End Sub  
    
    private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)  
    {  
        // Check Credentials Here  
    
        if ((CredentialCheck.Checked == true) && (tabControl1.SelectedTab == tabPage2))   
        {  
            tabControl1.SelectedTab = tabPage2;  
        }  
        else if ((CredentialCheck.Checked == false) && (tabControl1.SelectedTab == tabPage2))  
        {  
            MessageBox.Show("Unable to load tab. You have insufficient access privileges.");  
            tabControl1.SelectedTab = tabPage3;  
        }  
    }  
    
    private:  
       System::Void tabControl1_SelectedIndexChanged(  
          System::Object ^ sender,  
          System::EventArgs ^  e)  
       {  
          // Check Credentials Here  
          if ((CredentialCheck->Checked == true) &&  
              (tabControl1->SelectedTab == tabPage2))  
          {  
             tabControl1->SelectedTab = tabPage2;  
          }  
          else if ((CredentialCheck->Checked == false) &&  
                   (tabControl1->SelectedTab == tabPage2))  
          {  
             MessageBox::Show(String::Concat("Unable to load tab. ",  
                "You have insufficient access privileges."));  
             tabControl1->SelectedTab = tabPage3;  
          }  
       }  
    

    (Visual C#, Visual C++) Поместите следующий код в конструктор формы для регистрации обработчика событий.

    this.tabControl1.SelectedIndexChanged +=   
       new System.EventHandler(this.tabControl1_SelectedIndexChanged);  
    
    this->tabControl1->SelectedIndexChanged +=  
       gcnew System::EventHandler(this, &Form1::tabControl1_SelectedIndexChanged);  
    

См. также

  • Общие сведения об элементе управления TabControl
  • Практическое руководство. Добавление элемента управления на вкладку
  • Практическое руководство. Добавление и удаление вкладок с помощью элемента управления TabControl в Windows Forms
  • Практическое руководство. Изменение внешнего вида элемента управления TabControl в Windows Forms
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX