Windows Forms Araç Kutusu Denetimi Oluşturma

Visual Studio Genişletilebilirlik Araçları'na (VSSDK) dahil edilen Windows Forms Araç Kutusu Denetim öğesi şablonu, uzantı yüklendiğinde otomatik olarak eklenen bir Araç Kutusu denetimi oluşturmanıza olanak tanır. Bu kılavuzda, şablonu kullanarak diğer kullanıcılara dağıtabileceğiniz basit bir sayaç denetimi oluşturma gösterilmektedir.

Araç Kutusu Denetimi Oluşturma

Windows Forms Araç Kutusu Denetimi şablonu tanımlanmamış bir kullanıcı denetimi oluşturur ve denetimi Araç Kutusu'na eklemek için gereken tüm işlevleri sağlar.

Windows Forms Araç Kutusu Denetimi ile uzantı oluşturma

  1. adlı MyWinFormsControlbir VSIX projesi oluşturun. "vsix" araması yaparak VSIX proje şablonunu Yeni Proje iletişim kutusunda bulabilirsiniz.

  2. Proje açıldığında adlı Counterbir Windows Forms Araç Kutusu Denetim öğesi şablonu ekleyin. Çözüm Gezgini proje düğümüne sağ tıklayın ve Yeni Öğe Ekle'yi>seçin. Yeni Öğe Ekle iletişim kutusunda Visual C#>Genişletilebilirlik'e gidin ve Windows Forms Araç Kutusu Denetimi'ni seçin

  3. Bu, ProvideToolboxControlAttribute RegistrationAttribute denetimi Araç Kutusu'na yerleştirmek için bir kullanıcı denetimi ve dağıtım için VSIX bildirimine bir Microsoft.VisualStudio.ToolboxControl Asset girişi ekler.

Denetim için kullanıcı arabirimi oluşturma

Denetim Counter iki alt denetim gerektirir: geçerli sayıyı görüntülemek için a Label Button ve sayıyı 0'a sıfırlamak için. Çağıranlar sayacı program aracılığıyla artıracağından başka alt denetim gerekmez.

Kullanıcı arabirimini oluşturmak için

  1. Çözüm Gezgini'da Counter.cs çift tıklayarak tasarımcıda açın.

  2. Windows Forms Araç Kutusu Denetim öğesi şablonunu eklediğinizde varsayılan olarak eklenen Buraya Tıklayın ! düğmesini kaldırın.

  3. Araç Kutusu'ndan bir Label denetimi ve ardından altındaki bir Button denetimi tasarım yüzeyine sürükleyin.

  4. Genel kullanıcı denetimini 150, 50 piksel olarak yeniden boyutlandırın ve düğme denetimini 50, 20 piksel olarak yeniden boyutlandırın.

  5. Özellikler penceresinde, tasarım yüzeyindeki denetimler için aşağıdaki değerleri ayarlayın.

    Denetim Özellik Değer
    Label1 Metin ""
    Button1 Ad btnReset
    Button1 Metin Reset

Kullanıcı denetimini kodlayın

DenetimCounter, sayacı artırmaya yönelik bir yöntem, sayaç artırıldığında tetiklenecek bir olay, bir Sıfırla düğmesi ve geçerli sayıyı depolamak için üç özellik, görüntüleme metni ve Sıfırla düğmesinin gösterilip gösterilmeyeceğini veya gizleneceğini gösterir. özniteliği, ProvideToolboxControl Denetimin Araç Kutusu'nda nerede görüneceğini Counter belirler.

Kullanıcı denetimini kodlar

  1. Kod penceresinde yük olayı işleyicisini açmak için forma çift tıklayın.

  2. Olay işleyici yönteminin üzerinde, denetim sınıfında aşağıdaki örnekte gösterildiği gibi sayaç değerini depolamak için bir tamsayı ve görüntüleme metnini depolamak için bir dize oluşturun.

    int currentValue;
    string displayText;
    
  3. Aşağıdaki genel özellik bildirimlerini oluşturun.

    public int Value {
        get { return currentValue; }
    }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    
    

    Arayanlar, sayacın görünen metnini almak ve ayarlamak ve Sıfırla düğmesini göstermek veya gizlemek için bu özelliklere erişebilir. Çağıranlar salt okunur Value özelliğin geçerli değerini alabilir, ancak değeri doğrudan ayarlayamazlar.

  4. Denetimin olayına Load aşağıdaki kodu yerleştirin.

    private void Counter_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    
    

    Olaydaki Etiket metninin Load ayarlanması, hedef özelliklerin değerleri uygulanmadan önce yüklenmesini sağlar. Oluşturucuda Etiket metnini ayarlamak boş bir Etiketle sonuçlanır.

  5. Sayacı artırmak için aşağıdaki genel yöntemi oluşturun.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Denetim sınıfına Incremented olay için bir bildirim ekleyin.

    public event EventHandler Incremented;
    

    Çağıranlar, sayacın değerindeki değişikliklere yanıt vermek için bu olaya işleyiciler ekleyebilir.

  7. Tasarım görünümüne dönün ve olay işleyicisini oluşturmak btnReset_Click için Sıfırla düğmesine çift tıklayın. Ardından, aşağıdaki örnekte gösterildiği gibi doldurun.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Sınıf tanımının hemen üzerinde, öznitelik bildiriminde ProvideToolboxControl ilk parametrenin değerini olarak "MyWinFormsControl.Counter" "General"değiştirin. Bu, Denetimi Araç Kutusu'nda barındıracak öğe grubunun adını ayarlar.

    Aşağıdaki örnekte özniteliği ve ayarlanmış sınıf tanımı gösterilmektedir ProvideToolboxControl .

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Denetimi test edin

Bir Toolbox denetimini test etmek için önce geliştirme ortamında test edin ve ardından derlenmiş bir uygulamada test edin.

Denetimi test etmek için

  1. Hata Ayıklamayı Başlatmak için F5 tuşuna basın.

    Bu komut projeyi oluşturur ve denetimin yüklü olduğu ikinci bir Deneysel Visual Studio örneğini açar.

  2. Visual Studio'nun Deneysel örneğinde bir Windows Forms Uygulaması projesi oluşturun.

  3. Çözüm Gezgini'da, Form1.cs'a çift tıklayarak açık değilse tasarımcıda açın.

  4. Araç Kutusu'nda denetim Genel Counter bölümünde görüntülenmelidir.

  5. Bir Counter denetimi formunuza sürükleyin ve ardından seçin. Value, Messageve ShowReset özellikleri, öğesinden UserControldevralınan özelliklerle birlikte Özellikler penceresinde görüntülenir.

  6. Message özelliğini Count: olarak ayarlayın.

  7. Bir Button denetimi forma sürükleyin ve düğmenin adını ve metin özelliklerini olarak Testayarlayın.

  8. kod görünümünde Form1.cs açmak ve tıklama işleyicisi oluşturmak için düğmeye çift tıklayın.

  9. Tıklama işleyicisinde öğesini çağırın counter1.Increment().

  10. Oluşturucu işlevinde, çağrısından sonra yazın ve sekme tuşuna InitializeComponent iki kez basın.counter1``.``Incremented +=

    Visual Studio, olay için counter1.Incremented form düzeyinde bir işleyici oluşturur.

  11. Throw Olay işleyicisindeki deyimi vurgulayın, yazın mboxve ardından mbox kod parçacığından bir ileti kutusu oluşturmak için Sekme tuşuna iki kez basın.

  12. Sonraki satırda, Sıfırla düğmesinin görünürlüğünü ayarlamak için aşağıdakielse if/bloğu ekleyin.

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. F5 tuşuna basın.

    Form açılır. Denetim Counter aşağıdaki metni görüntüler.

    Sayı: 0

  14. Test'i seçin.

    Sayaç artar ve Visual Studio bir ileti kutusu görüntüler.

  15. İleti kutusunu kapatın.

    Sıfırla düğmesi kaybolur.

  16. Sayaç 5'e ulaşana kadar test et'i seçin ve her seferinde ileti kutularını kapatın.

    Sıfırla düğmesi yeniden görünür.

  17. Sıfırla'yı seçin.

    Sayaç 0'a sıfırlanır.

Sonraki adımlar

Araç Kutusu denetimi oluşturduğunuzda, Visual Studio projenizin \bin\debug\ klasöründe ProjectName.vsix adlı bir dosya oluşturur. .vsix dosyasını bir ağa veya bir Web sitesine yükleyerek denetimi dağıtabilirsiniz. Bir kullanıcı .vsix dosyasını açtığında, denetim yüklenir ve kullanıcının bilgisayarındaki Visual Studio Araç Kutusu'na eklenir. Alternatif olarak, .vsix dosyasını Visual Studio Market'e yükleyerek kullanıcıların Araç>Uzantıları ve Güncelleştirmeler iletişim kutusuna göz atarak bu dosyayı bulabilmelerini sağlayabilirsiniz.