2009-11-10 14 views
7

Metin kutusunun metnini ayarlamak için bir string özelliği olan bir Windows Form Kullanıcı Denetimi kullanıyorum. Bu dize çok satırlı olabilir.Özellikler penceresindeki çok satırlı String özelliklerine izin ver

Metin özelliği olan bazı denetimlerde bunu ve tek satır özellik metin kutusuna yazmak zorunda kalmamak yerine, birden fazla satır yazabileceğiniz küçük bir pencere açılır. (Aslına bakarsanız, bir Windows Forms Textbox denetimi bunu Text özelliğine izin verir.)

Bu işlevselliği, tasarladığım özellik için özellikler penceresinde nasıl etkinleştiririm?

[EditorAttribute(typeof(MultilineStringEditor), 
       typeof(System.Drawing.Design.UITypeEditor))] 
public string Instructions 
{ 
    get 
    { 
     return TextBox1.Text; 
    } 
    set 
    { 
     TextBox1.Text = value; 
    } 
} 

: Aşağıdaki

değil gerçek Uygulamamda kod, ancak böyle bir özellik

public string Instructions 
{ 
    get 
    { 
     return TextBox1.Text; 
    } 
    set 
    { 
     TextBox1.Text = value; 
    } 
} 

cevap

14

tanımlanabilir bir örnek Bir MultilineStringEditor ile EditorAttribute kullanabileceği başka System.Design'a bir başvuru eklemekten kaçınmak ve bu nedenle Tam çerçeveyi gerektirmekten kaçınmak için, şu özelliği de yazabilirsiniz:

[EditorAttribute(
    "System.ComponentModel.Design.MultilineStringEditor, System.Design", 
    "System.Drawing.Design.UITypeEditor")] 

Bu, daha az sorun olsa da, şimdi, çerçeveyi bir İstemci Profili ve Bir Tam bölüme ayırmayı kestiler.

+1

Üzgünüz, bazı referansları kaçırmam gerekiyor. MiltilineStringEditor'u Intellisense'de bir seçenek olarak kullanmıyorum. System.ComponentModel.Design.MultilineStringEditor kullandığımda bile. Ve derleme yapmaz. Eğer işe alırsam, size doğru cevap için kredi vereceğim, ancak ... – David

+1

'System.Design.dll' – manji

+1

Kusursuz referansı var. Bunu kendi başıma buldum ve bir yorum olarak bunu geri göndermek için geri geliyordum. Teşekkür ederim. Bunu bir günlüğüne açık tutacağım ya da öyle ki, umarım kendi cevabımın yanında bazı cevaplar alırsınız. Bu oldukça belirsiz bir bilgi parçasıydı ve bence ödüllendirilmelisin. – David