本文整理汇总了C#中ScintillaNet.LineScroll方法的典型用法代码示例。如果您正苦于以下问题:C# ScintillaNet.LineScroll方法的具体用法?C# ScintillaNet.LineScroll怎么用?C# ScintillaNet.LineScroll使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ScintillaNet
的用法示例。
在下文中一共展示了ScintillaNet.LineScroll方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GotoPosAndFocus
private void GotoPosAndFocus(ScintillaNet.ScintillaControl sci, int position)
{
// don't correct to multi-byte safe position (assumed correct)
sci.GotoPos(position);
int line = sci.LineFromPosition(position);
// TODO The folding makes the line centering fail - solution: expand all folds / make it smarter.
//sci.EnsureVisible(line);
sci.ExpandAllFolds();
int top = sci.FirstVisibleLine;
int middle = top + sci.LinesOnScreen/2;
sci.LineScroll(0, line-middle);
((Control)sci).Focus();
}
示例2: CodeAutoOnChar
/// <summary>
/// Some characters can fire code generation
/// </summary>
/// <param name="sci">Scintilla control</param>
/// <param name="value">Character</param>
/// <returns>Code was generated</returns>
static private bool CodeAutoOnChar(ScintillaNet.ScintillaControl sci, int value)
{
if (!ASContext.AutoImportsEnabled)
return false;
int position = sci.CurrentPos;
if (value == '*' && position > 1 && sci.CharAt(position-2) == '.' && LastExpression != null)
{
// context
string key = LastExpression.Keyword;
if (key != null && (key == "import" || key == "extends" || key == "implements" || key == "package"))
return false;
ASResult context = EvalExpression(LastExpression.Value, LastExpression, ASContext.CurrentClass, true);
if (context.IsNull() || context.Class.Flags != FlagType.Package)
return false;
string package = LastExpression.Value;
int startPos = LastExpression.Position;
string check = "";
char c;
while (startPos > LastExpression.PositionExpression && check.Length <= package.Length && check != package)
{
c = (char)sci.CharAt(--startPos);
if (c > 32) check = c+check;
}
if (check != package)
return false;
// insert import
string statement = "import "+package+"*;"+ASContext.MainForm.GetNewLineMarker(sci.EOLMode);
int endPos = sci.CurrentPos;
int line = 0;
int curLine = sci.LineFromPosition(position);
int firstLine = 0;
bool found = false;
string txt;
Match mImport;
while (line < curLine)
{
txt = sci.GetLine(line++).TrimStart();
// HACK insert imports after AS3 package declaration
if (txt.StartsWith("package"))
{
statement = '\t'+statement;
firstLine = (txt.IndexOf('{') < 0) ? line+1 : line;
}
else if (txt.StartsWith("import"))
{
found = true;
// insérer dans l'ordre alphabetique
mImport = ASClassParser.re_import.Match(txt);
if (mImport.Success &&
String.Compare(mImport.Groups["package"].Value, package) > 0)
{
line--;
break;
}
}
else if (found) {
line--;
break;
}
}
if (line == curLine) line = firstLine;
position = sci.PositionFromLine(line);
line = sci.FirstVisibleLine;
sci.SetSel(position, position);
sci.ReplaceSel(statement);
// prepare insertion of the term as usual
startPos += statement.Length;
endPos += statement.Length;
sci.SetSel(startPos, endPos);
sci.ReplaceSel("");
sci.LineScroll(0, line-sci.FirstVisibleLine+1);
// create classes list
ASClass cClass = ASContext.CurrentClass;
ArrayList list = new ArrayList();
foreach(ASMember import in cClass.Imports)
if (import.Type.StartsWith(package))
list.Add(new MemberItem(import));
CompletionList.Show(list, false);
return true;
}
return false;
}