gpt4 book ai didi

c# - ICSharpCode.TextEditor 垂直滚动

转载 作者:太空狗 更新时间:2023-10-29 23:48:32 26 4
gpt4 key购买 nike

是否可以在 ICSharpCode.TextEditor 中配置垂直滚动,这样默认情况下垂直滚动条是不可见的。而且只有当有人键入很多行(超出此控件的当前高度)时,垂直滚动条才会自动出现。如果是,如何?

最佳答案

自己添加功能很容易:

1) 转到命名空间 ICSharpCode.TextEditor 并打开 TextAreaControl 类。文件位置为:C:...\ICSharpCode.TextEditor\Project\Src\Gui\TextAreaControl.cs

2) 添加一个方法来设置水平或垂直滚动​​条的可见性:

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

3) 在带有 TextEditor 的项目中,这是调用 ShowScrollBars() 方法的方式:

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

此代码根据文本行数显示垂直滚动条:

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

在 TextAreaControl 中:

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

ps 我正在使用这个 Code Project ICSharpCode-TextEditor项目。

关于c# - ICSharpCode.TextEditor 垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com