2010-08-13 23 views
5

Có thể định cấu hình cuộn dọc trong ICSharpCode.TextEditor như vậy theo mặc định không có thanh cuộn dọc có thể nhìn thấy được. Và chỉ khi ai đó gõ rất nhiều dòng (vượt quá chiều cao hiện tại của điều khiển này) thì thanh cuộn dọc xuất hiện tự động. Nếu có, làm thế nào?ICSharpCode.TextEditor Vertical Scrolling

+0

+1 Không còn tumbleweed :) –

Trả lời

1

dễ dàng của nó để thêm chức năng bản thân:

1) Chuyển đến không gian tên ICSharpCode.TextEditor và mở lớp TextAreaControl. Vị trí tập tin là: C: ... \ ICSharpCode.TextEditor \ Project \ Src \ Gui \ TextAreaControl.cs

2) Thêm một phương pháp để thiết lập sự hiện diện của các thanh cuộn ngang hoặc dọc:

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

3) trong dự án với TextEditor, đây là cách bạn gọi ShowScrollBars() phương pháp:

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

mã này hiện các trick để hiển thị thanh cuộn dọc dựa trên số dòng văn bản:

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);    
} 

Trong TextAreaControl:

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

ps Tôi đang sử dụng dự án Code Project ICSharpCode-TextEditor này.

+0

Có thể ẩn thanh cuộn ngang không? Tôi đã kiểm tra mã và các cuộc gọi api, nhưng tôi không thể tìm thấy nó. –

+0

Tôi chưa có mã mở trước mặt mình, mặc dù bạn có thể đặt 'Orientation.Vertical' thành' Orientation.Horizontal' –

+0

cảm ơn, vâng tôi biết nhưng tôi đã đặt câu hỏi sai, tôi muốn biết nếu có một cách để xác định tổng số cột/ký tự tối đa trên một dòng để xem liệu nó có thể tự động ẩn HScrollBar dựa trên logic đó hay không. –

Các vấn đề liên quan