İngilizce dilinde oku

Aracılığıyla paylaş


ErrorProvider Sınıf

Tanım

Formdaki bir denetimin kendisiyle ilişkilendirilmiş bir hata olduğunu belirten bir kullanıcı arabirimi sağlar.

C#
public class ErrorProvider : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider
C#
[System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
public class ErrorProvider : System.ComponentModel.Component, System.ComponentModel.IExtenderProvider, System.ComponentModel.ISupportInitialize
Devralma
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, kullanıcıya veri girişi hatasını ErrorProvider bildirmek için sınıfını kullanmayı gösterir. Örnek, her biri içeriğini doğrulayan bir TextBox denetim, bir NumericUpDown denetim ve her denetim ComboBox için bir içeren bir ErrorProvider oluştururForm. Örnek, ve özelliklerini ve BlinkStyleSetIconAlignmentSetIconPadding yöntemlerini kullanarak BlinkRate hata simgesi seçeneklerini ayarlar. Yöntemi, denetimin SetError olayı sırasında denetimdeki Validated içeriğe bağlı olarak uygun hata metniyle veya metin olmadan çağrılır.

C#
using System;
using System.Drawing;
using System.Windows.Forms;

namespace ErrorProvider
{
    public class Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.Label label6;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.TextBox nameTextBox1;
        private System.Windows.Forms.NumericUpDown ageUpDownPicker;
        private System.Windows.Forms.ComboBox favoriteColorComboBox;
        private System.Windows.Forms.ErrorProvider ageErrorProvider;
        private System.Windows.Forms.ErrorProvider nameErrorProvider;
        private System.Windows.Forms.ErrorProvider favoriteColorErrorProvider;

        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }

        public Form1()
        {
            this.nameTextBox1 = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.ageUpDownPicker = new System.Windows.Forms.NumericUpDown();
            this.favoriteColorComboBox = new System.Windows.Forms.ComboBox();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.label6 = new System.Windows.Forms.Label();

            // Name Label
            this.label1.Location = new System.Drawing.Point(56, 32);
            this.label1.Size = new System.Drawing.Size(40, 23);
            this.label1.Text = "Name:";

            // Age Label
            this.label2.Location = new System.Drawing.Point(40, 64);
            this.label2.Size = new System.Drawing.Size(56, 23);
            this.label2.Text = "Age (3-5)";           

            // Favorite Color Label
            this.label3.Location = new System.Drawing.Point(24, 96);
            this.label3.Size = new System.Drawing.Size(80, 24);
            this.label3.Text = "Favorite color";

            // ErrorBlinkStyle.AlwaysBlink Label
            this.label4.Location = new System.Drawing.Point(264, 32);
            this.label4.Size = new System.Drawing.Size(160, 23);
            this.label4.Text = "ErrorBlinkStyle.AlwaysBlink";

            // ErrorBlinkStyle.BlinkIfDifferentError Label
            this.label5.Location = new System.Drawing.Point(264, 64);
            this.label5.Size = new System.Drawing.Size(200, 23);
            this.label5.Text = "ErrorBlinkStyle.BlinkIfDifferentError";

            // ErrorBlinkStyle.NeverBlink Label
            this.label6.Location = new System.Drawing.Point(264, 96);
            this.label6.Size = new System.Drawing.Size(200, 23);
            this.label6.Text = "ErrorBlinkStyle.NeverBlink";

            // Name TextBox
            this.nameTextBox1.Location = new System.Drawing.Point(112, 32);
            this.nameTextBox1.Size = new System.Drawing.Size(120, 20);
            this.nameTextBox1.TabIndex = 0;
            this.nameTextBox1.Validated += new System.EventHandler(this.nameTextBox1_Validated);

            // Age NumericUpDown
            this.ageUpDownPicker.Location = new System.Drawing.Point(112, 64);
            this.ageUpDownPicker.Maximum = new System.Decimal(new int[] {150,0,0,0});
            this.ageUpDownPicker.TabIndex = 4;
            this.ageUpDownPicker.Validated += new System.EventHandler(this.ageUpDownPicker_Validated);

            // Favorite Color ComboBox
            this.favoriteColorComboBox.Items.AddRange(new object[] {"None","Red","Yellow",
                                                                    "Green","Blue","Purple"});
            this.favoriteColorComboBox.Location = new System.Drawing.Point(112, 96);
            this.favoriteColorComboBox.Size = new System.Drawing.Size(120, 21);
            this.favoriteColorComboBox.TabIndex = 5;
            this.favoriteColorComboBox.Validated += new System.EventHandler(this.favoriteColorComboBox_Validated);

            // Set up how the form should be displayed and add the controls to the form.
            this.ClientSize = new System.Drawing.Size(464, 150);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                        this.label6,this.label5,this.label4,this.label3,
                                        this.favoriteColorComboBox,this.ageUpDownPicker,
                                        this.label2,this.label1,this.nameTextBox1});
            this.Text = "Error Provider Example";

            // Create and set the ErrorProvider for each data entry control.

            nameErrorProvider = new  System.Windows.Forms.ErrorProvider();
            nameErrorProvider.SetIconAlignment (this.nameTextBox1, ErrorIconAlignment.MiddleRight);
            nameErrorProvider.SetIconPadding (this.nameTextBox1, 2);
            nameErrorProvider.BlinkRate = 1000;
            nameErrorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.AlwaysBlink;

            ageErrorProvider = new  System.Windows.Forms.ErrorProvider();
            ageErrorProvider.SetIconAlignment (this.ageUpDownPicker, ErrorIconAlignment.MiddleRight);
            ageErrorProvider.SetIconPadding (this.ageUpDownPicker, 2);
            ageErrorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.BlinkIfDifferentError;

            favoriteColorErrorProvider = new  System.Windows.Forms.ErrorProvider();
            favoriteColorErrorProvider.SetIconAlignment (this.favoriteColorComboBox, ErrorIconAlignment.MiddleRight);
            favoriteColorErrorProvider.SetIconPadding (this.favoriteColorComboBox, 2);
            favoriteColorErrorProvider.BlinkRate = 1000;
            favoriteColorErrorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink;
        }
    
        private void nameTextBox1_Validated(object sender, System.EventArgs e)
        {
            if(IsNameValid())
            {
                // Clear the error, if any, in the error provider.
                nameErrorProvider.SetError(this.nameTextBox1, String.Empty);
            }
            else
            {
                // Set the error if the name is not valid.
                nameErrorProvider.SetError(this.nameTextBox1, "Name is required.");
            }
        }

        private void ageUpDownPicker_Validated(object sender, System.EventArgs e)
        {
            if (IsAgeTooYoung())
            {
                // Set the error if the age is too young.
                ageErrorProvider.SetError(this.ageUpDownPicker, "Age not old enough");
            }
            else if (IsAgeTooOld())
            {
                // Set the error if the age is too old.
                ageErrorProvider.SetError(this.ageUpDownPicker, "Age is too old");
            }
            else 
            {
                // Clear the error, if any, in the error provider.
                ageErrorProvider.SetError(this.ageUpDownPicker, String.Empty);
            }
        }

        private void favoriteColorComboBox_Validated(object sender, System.EventArgs e) 
        {
            if (!IsColorValid())
            {
                // Set the error if the favorite color is not valid.
                favoriteColorErrorProvider.SetError(this.favoriteColorComboBox, "Must select a color.");
            }
            else
            {
                // Clear the error, if any, in the error provider.
                favoriteColorErrorProvider.SetError(this.favoriteColorComboBox, String.Empty);
            }
        }

        // Functions to verify data.
        private bool IsNameValid() 
        {
            // Determine whether the text box contains a zero-length string.
            return (nameTextBox1.Text.Length > 0);
        }

        private bool IsAgeTooYoung() 
        {
            // Determine whether the age value is less than three.
            return (ageUpDownPicker.Value < 3);
        }

        private bool IsAgeTooOld() 
        {
            // Determine whether the age value is greater than five.
            return (ageUpDownPicker.Value > 5 );
        }

        private bool IsColorValid() 
        {
            // Determine whether the favorite color has a valid value.
            return ((favoriteColorComboBox.SelectedItem != null) &&
                (!favoriteColorComboBox.SelectedItem.ToString().Equals("None")));
        }
    }
}

Aşağıdaki kod örneği, kullanıcıya bir veri hatası göstermek için ve DataMember ile DataSource komutunun nasıl kullanılacağını ErrorProvider gösterir.

C#
private void InitializeComponent()
 {
     // Standard control setup.
     //....
     // You set the DataSource to a data set, and the DataMember to a table.
     errorProvider1.DataSource = dataSet1 ;
     errorProvider1.DataMember = dataTable1.TableName ;
     errorProvider1.ContainerControl = this ;
     errorProvider1.BlinkRate = 200 ;
     //...
     // Since the ErrorProvider control does not have a visible component,
     // it does not need to be added to the form. 
 }
 
 private void buttonSave_Click(object sender, System.EventArgs e)
 {
     // Checks for a bad post code.
     DataTable CustomersTable;
     CustomersTable = dataSet1.Tables["Customers"];
     foreach (DataRow row in (CustomersTable.Rows)) 
     {
         if (Convert.ToBoolean(row["PostalCodeIsNull"])) 
         {
             row.RowError="The Customer details contain errors";
             row.SetColumnError("PostalCode", "Postal Code required");
         } 
     } 
 }

Açıklamalar

ErrorProvider , son kullanıcıya formdaki bir denetimin kendisiyle ilişkilendirilmiş bir hata olduğunu belirten basit bir mekanizma sunar. Denetim için bir hata açıklaması dizesi belirtilirse, denetimin yanında bir simge görüntülenir. Simge tarafından belirtilen şekilde, tarafından BlinkStyleBlinkRatebelirtilen hızda yanıp söner. Fare simgenin üzerine geldiğinde, hata açıklama dizesini gösteren bir Araç İpucu görüntülenir.

Genellikle, veriye bağlı denetimlerle ilişkilendirmede kullanırsınız ErrorProvider . Veriye bağlı denetimlerle kullanırkenErrorProvider, oluşturucuda veya özelliğini ayarlayarak ContainerControl öğesini belirtmeniz ContainerControlgerekir.

Not

Bileşen, ErrorProvider erişilebilirlik istemcileri için yerleşik destek sağlamaz. Bu bileşeni kullanırken uygulamanızın erişilebilir olmasını sağlamak için ek, erişilebilir bir geri bildirim mekanizması sağlamanız gerekir.

Oluşturucular

ErrorProvider()

sınıfının yeni bir örneğini ErrorProvider başlatır ve , BlinkStyleve Iconiçin BlinkRatevarsayılan ayarları başlatır.

ErrorProvider(ContainerControl)

Kapsayıcıya eklenmiş sınıfının yeni bir örneğini ErrorProvider başlatır.

ErrorProvider(IContainer)

Bir uygulamaya eklenmiş sınıfın ErrorProvider yeni bir IContainer örneğini başlatır.

Özellikler

BlinkRate

Hata simgesinin yanıp söndiği hızı alır veya ayarlar.

BlinkStyle

Hata simgesinin ne zaman yanıp söndiğini belirten bir değer alır veya ayarlar.

CanRaiseEvents

Bileşenin olay oluşturup oluşturamayacağını belirten bir değer alır.

(Devralındığı yer: Component)
Container

öğesini IContainer içeren öğesini Componentalır.

(Devralındığı yer: Component)
ContainerControl

Bu ErrorProvideriçin üst denetimi belirten bir değer alır veya ayarlar.

DataMember

İzlenecek bir veri kaynağı içindeki listeyi alır veya ayarlar.

DataSource

İzleyen veri kaynağını ErrorProvider alır veya ayarlar.

DesignMode

öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır.

(Devralındığı yer: Component)
Events

Bu Componentöğesine eklenen olay işleyicilerinin listesini alır.

(Devralındığı yer: Component)
HasErrors

İlişkili denetimlerden herhangi birinde hata olup olmadığını ErrorProvider belirten bir değer alır.

Icon

Denetim için Icon bir hata açıklaması dizesi ayarlandığında denetimin yanında görüntülenen öğesini alır veya ayarlar.

RightToLeft

Bileşenin sağdan sola yazı tiplerini destekleyen bir yerel ayarda kullanılıp kullanılmadığını belirten bir değer alır veya ayarlar.

Site

öğesini alır veya ayarlar ISiteComponent.

Tag

Bileşen hakkındaki verileri içeren bir nesneyi alır veya ayarlar.

Yöntemler

BindToDataAndErrors(Object, String)

Hem hem de DataSourceDataMember çalışma zamanında ayarlamak için bir yöntem sağlar.

CanExtend(Object)

Denetimin genişletilip genişletilemeyeceğini belirten bir değer alır.

Clear()

Bu bileşenle ilişkili tüm ayarları temizler.

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Component tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Component)
Dispose(Boolean)

Component tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetError(Control)

Belirtilen denetim için geçerli hata açıklaması dizesini döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetIconAlignment(Control)

Hata simgesinin denetimle ilişkili olarak nereye yerleştirilmesi gerektiğini belirten bir değer alır.

GetIconPadding(Control)

Hata simgesinin yanında bırakmak için fazladan alan miktarını döndürür.

GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetService(Type)

veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür.

(Devralındığı yer: Component)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
OnRightToLeftChanged(EventArgs)

Olayı tetikler RightToLeftChanged .

SetError(Control, String)

Belirtilen denetim için hata açıklaması dizesini ayarlar.

SetIconAlignment(Control, ErrorIconAlignment)

Hata simgesinin denetimle ilişkili olarak yerleştirilmesi gereken konumu ayarlar.

SetIconPadding(Control, Int32)

Belirtilen denetimle hata simgesi arasında ayrılacak ek alan miktarını ayarlar.

ToString()

Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır.

(Devralındığı yer: Component)
UpdateBinding()

, DataMemberve hata metninin DataSourcebağlamalarını güncelleştirmek için bir yöntem sağlar.

Ekinlikler

Disposed

Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir.

(Devralındığı yer: Component)
RightToLeftChanged

Özellik değeri değiştirdiğinde RightToLeft gerçekleşir.

Belirtik Arabirim Kullanımları

ISupportInitialize.BeginInit()

Başlatmanın başlatıldığını nesneye sinyaller.

ISupportInitialize.EndInit()

Başlatmanın tamamlandığını nesneye bildirir.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10