Visual C++ .NET/GUI Form/ErrorProvider

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

ErrorProvider Demo

 
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
  Application::Run(gcnew Form1());
  return 0;
}
  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;
  public ref class Form1 : public System::Windows::Forms::Form
  {
  public:
    Form1(void)
    {
      InitializeComponent();
    }
  private:
        System::Windows::Forms::TextBox^  tbPword;
        System::Windows::Forms::Label^  lbPword;
        System::Windows::Forms::Button^  bnLogin;
        System::Windows::Forms::TextBox^  tbName;
        System::Windows::Forms::Label^  lbName;
        System::Windows::Forms::ErrorProvider^  eProvider;
    void InitializeComponent(void)
    {
            this->tbPword = (gcnew System::Windows::Forms::TextBox());
            this->lbPword = (gcnew System::Windows::Forms::Label());
            this->bnLogin = (gcnew System::Windows::Forms::Button());
            this->tbName = (gcnew System::Windows::Forms::TextBox());
            this->lbName = (gcnew System::Windows::Forms::Label());
            this->eProvider =(gcnew System::Windows::Forms::ErrorProvider());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>
                (this->eProvider))->BeginInit();
            this->SuspendLayout();
            //
            // tbPword
            //
            this->tbPword->Location = System::Drawing::Point(103, 83);
            this->tbPword->Name = L"tbPword";
            this->tbPword->PasswordChar = "*";
            this->tbPword->Size = System::Drawing::Size(100, 20);
            this->tbPword->TabIndex = 9;
            this->tbPword->Validating +=
                gcnew System::ComponentModel::CancelEventHandler(this,
                                                   &Form1::textbox_Validating);
            //
            // lbPword
            //
            this->lbPword->AutoSize = true;
            this->lbPword->Location = System::Drawing::Point(34, 83);
            this->lbPword->Name = L"lbPword";
            this->lbPword->Size = System::Drawing::Size(53, 13);
            this->lbPword->TabIndex = 8;
            this->lbPword->Text = L"&Password";
            //
            // bnLogin
            //
            this->bnLogin->Location = System::Drawing::Point(75, 131);
            this->bnLogin->Name = L"bnLogin";
            this->bnLogin->Size = System::Drawing::Size(75, 23);
            this->bnLogin->TabIndex = 7;
            this->bnLogin->Text = L"&Login";
            this->bnLogin->Click +=
                gcnew System::EventHandler(this, &Form1::login_Click);
            //
            // tbName
            //
            this->tbName->Location = System::Drawing::Point(103, 31);
            this->tbName->Name = L"tbName";
            this->tbName->Size = System::Drawing::Size(100, 20);
            this->tbName->TabIndex = 6;
            this->tbName->Validating +=
                gcnew System::ComponentModel::CancelEventHandler(this,
                                                   &Form1::textbox_Validating);
            //
            // lbName
            //
            this->lbName->AutoSize = true;
            this->lbName->Location = System::Drawing::Point(34, 31);
            this->lbName->Name = L"lbName";
            this->lbName->Size = System::Drawing::Size(35, 13);
            this->lbName->TabIndex = 5;
            this->lbName->Text = L"&Name";
            //
            // eProvider
            //
            this->eProvider->ContainerControl = this;
            //
            // Form1
            //
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(237, 185);
            this->Controls->Add(this->tbPword);
            this->Controls->Add(this->lbPword);
            this->Controls->Add(this->bnLogin);
            this->Controls->Add(this->tbName);
            this->Controls->Add(this->lbName);
            this->Name = L"Form1";
            this->Text = L"System Login";
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>
                (this->eProvider))->EndInit();
            this->ResumeLayout(false);
            this->PerformLayout();
    }
        System::Void textbox_Validating(System::Object^ sender,
                                    System::ComponentModel::CancelEventArgs^ e)
        {
            try
            {
                TextBox ^tb = (TextBox^)(sender);
                if (tb->Text->Equals(""))
                    eProvider->SetError(tb, "**Error** Missing Entry!");
                else
                    eProvider->SetError(tb, "");
            }
            catch (Exception^)
            {
                // Not TextBox
            }
        }
        System::Void login_Click(System::Object^ sender, System::EventArgs^ e)
        {
            if (tbName->Text->Equals(""))
                eProvider->SetError(tbName, "**Error** Missing Entry!");
            else
                eProvider->SetError(tbName, "");

            if (tbPword->Text->Equals(""))
            {
                // Place the icon left side of control
                eProvider->SetIconAlignment(tbPword,
                                            ErrorIconAlignment::MiddleLeft);
                eProvider->SetError(tbPword, "**Error** Missing Entry!");
            }
            else
                eProvider->SetError(tbPword, "");
        }
  };
}