Denetim olayını işleme (Windows Forms .NET)

Denetimler (ve formlar için) olayları genellikle Windows Forms için Visual Studio Visual Tasarım Aracı aracılığıyla ayarlanır. Visual Tasarım Aracı aracılığıyla bir olay ayarlamak, bir olayı tasarım zamanında işleme olarak bilinir. Ayrıca, olayları çalışma zamanında işleme olarak bilinen kodda dinamik olarak da işleyebilirsiniz. Çalışma zamanında oluşturulan bir olay, uygulamanızın şu anda yaptıklarına bağlı olarak olay işleyicilerini dinamik olarak bağlamanıza olanak tanır.

Önemli

.NET 7 ve .NET 6 için Masaüstü Kılavuzu belgeleri yapım aşamasındadır.

Olayı işleme - tasarımcı

Visual Studio'da, denetim olaylarının işleyicilerini yönetmek için Visual Tasarım Aracı kullanın. Visual Tasarım Aracı işleyici kodunu oluşturur ve sizin için olaya ekler.

İşleyiciyi ayarlama

Bir olayın işleyicisini eklemek veya ayarlamak için Özellikler bölmesini kullanın:

  1. Değiştirecek denetimi içeren formun Visual Tasarım Aracı açın.

  2. Denetimi seçin.

  3. Olaylar düğmesine ( ) basarak Özellikler bölmesi modunu Olaylar olarak değiştirin.

  4. İşleyici eklemek istediğiniz olayı bulun, örneğin Click olayı:

    Visual Studio properties pane shown with the events mode enabled and the click event.

  5. Aşağıdakilerden birini yapın:

    • Yeni bir işleyici oluşturmak için olaya çift tıklayın; hiçbir işleyici atanmamışsa boş olur. Boş değilse, bu eylem formun kodunu açar ve var olan işleyiciye gider.

    • Var olan bir işleyiciyi seçmek için seçim kutusunu ( ) kullanın.

      Seçim kutusu, olay işleyicisi için uyumlu bir yöntem imzası olan tüm yöntemleri listeler.

İşleyiciyi temizleme

Bir olay işleyicisini kaldırmak için, formun arka planda kod dosyasındaki işleyici kodunu silemezsiniz; yine de olay tarafından başvurulur. Bir olayın işleyicisini kaldırmak için Özellikler bölmesini kullanın:

  1. Değiştirecek denetimi içeren formun Visual Tasarım Aracı açın.

  2. Denetimi seçin.

  3. Olaylar düğmesine ( ) basarak Özellikler bölmesi modunu Olaylar olarak değiştirin.

  4. Kaldırmak istediğiniz işleyiciyi içeren olayı bulun, örneğin Click olayı:

    Visual Studio properties pane shown with the events mode enabled and the click event.

  5. Etkinliğe sağ tıklayın ve Sıfırla'yı seçin.

Olayı işleme - kod

Genellikle Visual Tasarım Aracı aracılığıyla denetimlere tasarım zamanında olay işleyicileri eklersiniz. Ancak, çalışma zamanında denetimler oluşturabilirsiniz ve bu da koda olay işleyicileri eklemenizi gerektirir. Koda işleyiciler eklemek, aynı olaya birden çok işleyici ekleme fırsatı da sağlar.

İşleyici ekleme

Aşağıdaki örnekte bir denetimin nasıl oluşturulacağı ve olay işleyicisinin nasıl ekleneceği gösterilmektedir. Bu denetim, olay işleyicisinde Button.Click farklı bir düğmede oluşturulur. Düğme1'e basıldığında. Kod, yeni bir düğmeyi taşır ve boyutlandırıyor. Yeni düğmenin Click olayı yöntemi tarafından MyNewButton_Click işlenir. Yeni düğmenin görünmesini sağlamak için formun Controls koleksiyonuna eklenir. Ayrıca, olayın işleyicisini kaldırmaya Button1.Click ilişkin kod da vardır. Bu, İşleyiciyi kaldırma bölümünde açıklanmıştır.

private void button1_Click(object sender, EventArgs e)
{
    // Create and add the button
    Button myNewButton = new()
    {
        Location = new Point(10, 10),
        Size = new Size(120, 25),
        Text = "Do work"
    };

    // Handle the Click event for the new button
    myNewButton.Click += MyNewButton_Click;
    this.Controls.Add(myNewButton);

    // Remove this button handler so the user cannot do this twice
    button1.Click -= button1_Click;
}

private void MyNewButton_Click(object sender, EventArgs e)
{
    
}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Create and add the button
    Dim myNewButton As New Button() With {.Location = New Point(10, 10),
                                          .Size = New Size(120, 25),
                                          .Text = "Do work"}

    'Handle the Click event for the new button
    AddHandler myNewButton.Click, AddressOf MyNewButton_Click
    Me.Controls.Add(myNewButton)

    'Remove this button handler so the user cannot do this twice
    RemoveHandler Button1.Click, AddressOf Button1_Click
End Sub

Private Sub MyNewButton_Click(sender As Object, e As EventArgs)

End Sub

Bu kodu çalıştırmak için Visual Studio Visual Tasarım Aracı ile bir forma aşağıdakileri yapın:

  1. Forma yeni bir düğme ekleyin ve Düğme1 olarak adlandırın.
  2. Olay düğmesine ( ) basarak Özellikler bölmesi modunu Olaylar olarak değiştirin.
  3. İşleyici oluşturmak için Click olayına çift tıklayın. Bu eylem kod penceresini açar ve boş Button1_Click bir yöntem oluşturur.
  4. Yöntem kodunu yukarıdaki önceki kodla değiştirin.

C# olayları hakkında daha fazla bilgi için bkz . Olaylar (C#) Visual Basic olayları hakkında daha fazla bilgi için bkz . Olaylar (Visual Basic)

İşleyiciyi kaldırma

İşleyici ekle bölümü, işleyici eklemeyi göstermek için bazı kodlar kullandı. Bu kod, bir işleyiciyi kaldırmak için bir çağrı da içeriyordu:

button1.Click -= button1_Click;
RemoveHandler Button1.Click, AddressOf Button1_Click

Bu söz dizimi herhangi bir olaydan herhangi bir olay işleyicisini kaldırmak için kullanılabilir.

C# olayları hakkında daha fazla bilgi için bkz . Olaylar (C#) Visual Basic olayları hakkında daha fazla bilgi için bkz . Olaylar (Visual Basic)

Aynı işleyiciyle birden çok olay kullanma

Visual Studio Visual Tasarım Aracı Özellikler bölmesiyle, farklı bir olay tarafından kullanılmakta olan işleyiciyi seçebilirsiniz. yeni bir işleyici oluşturmak yerine var olan bir işleyiciyi seçmek için İşleyiciyi ayarlama bölümündeki yönergeleri izleyin.

C# dilinde işleyici, formun tasarımcı kodunda visual Tasarım Aracı ile değiştirilen bir denetimin olayına eklenir. C# olayları hakkında daha fazla bilgi için bkz . Olaylar (C#)

Visual Basic

Visual Basic'te işleyici, formun arka planda kod dosyasındaki bir denetimin olayına eklenir ve burada olay işleyicisi kodu bildirilir. Birden çok Handles olayla kullanmak için olay işleyici koduna birden çok anahtar sözcük eklenebilir. Visual Tasarım Aracı sizin için anahtar sözcüğü oluşturur Handles ve olay işleyicisine ekler. Ancak, işleyici yönteminin imzası olayla eşleştiğinde, bunu herhangi bir denetimin olayına ve olay işleyicisine kolayca kendiniz yapabilirsiniz. Visual Basic olayları hakkında daha fazla bilgi için bkz. Olaylar (Visual Basic)

Bu kod, aynı yöntemin iki farklı Button.Click olay için işleyici olarak nasıl kullanılabileceğini gösterir:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
    'Do some work to handle the events
End Sub

Ayrıca bkz.