2010-08-13 26 views
5

ICSharpCode.TextEditor'da dikey kaydırmayı varsayılan olarak dikey kaydırma çubuğu görünmeyecek şekilde yapılandırmak mümkün müdür. Ve bu sadece bir kişi (bu kontrolün mevcut yüksekliğinin ötesinde) çok sayıda çizgi çizdiğinde, dikey kaydırma çubuğu otomatik olarak görünür. Evet ise nasıl?ICSharpCode.TextEditor Dikey Kaydırma

+0

+1 Artık Tumbleweed :) –

cevap

1

Onun kolay fonksiyonunu kendiniz ekleyin:

1) Goto ad ICSharpCode.TextEditor ve TextAreaControl sınıf açın. dosya konumu şudur: C: ... \ ICSharpCode.TextEditor \ Proje \ Src \ Gui \ TextAreaControl.cs ) Yatay veya dikey kaydırma görünürlüğünü ayarlamak için bir yöntem ekleyin:

public void ShowScrollBars(Orientation orientation,bool isVisible) 
{ 
    if (orientation == Orientation.Vertical) 
    { 
     vScrollBar.Visible = isVisible; 
    } 
    else 
    { 
     hScrollBar.Visible = isVisible; 
    } 
} 
TextEditor ile projede

3), bu ShowScrollBars() yöntemi çağırmak nasıl:

editor.ActiveTextAreaControl.ShowScrollBars(Orientation.Vertical,false); 

Bu kod metin hatlarının sayısına dayalı dikey kaydırma çubuğunu göstermek için hile yapar: TextAreaControl yılında

public TextEditorForm() 
{ 
    InitializeComponent(); 
    AddNewTextEditor("New file"); 
    SetSyntaxHighlighting("Mathematica");  
    editor.ActiveTextAreaControl.TextEditorProperties.IndentationSize = 0; 
    editor.ActiveTextAreaControl.ShowScrollBars(Orientation.Vertical,false); 
    editor.TextChanged += new EventHandler(editor_TextChanged); 
} 

void editor_TextChanged(object sender, EventArgs e) 
{    
    bool isVisible = (editor.ActiveTextAreaControl.GetTotalNumberOfLines > editor.ActiveTextAreaControl.TextArea.TextView.VisibleLineCount); 
    editor.ActiveTextAreaControl.ShowScrollBars(Orientation.Vertical, isVisible);    
} 

: Bu Code Project ICSharpCode-TextEditor projeyi kullanıyorum

public int GetTotalNumberOfLines() 
{ 
    return this.Document.TotalNumberOfLines; 
} 

ps.

+0

Ayrıca Yatay ScrollBar'ı gizlemek mümkün mü? Kodu ve api çağrılarını kontrol ettim ama bulamıyorum. –

+0

Kodun önümde açık kalmamasına rağmen, 'Orientation.Vertical' 'Orientation.Horizontal' –

+0

'a ayarlayabiliyor olsanız da, evet biliyorum ama yanlış soruyu sordum, bilmek istedim HScrollBar'ı otomatik olarak bu mantığa göre gizlemek mümkün olup olmadığını görmek için bir satırdaki toplam sütun/maksimum karakter sayısını belirlemenin bir yolu varsa. –

İlgili konular