public void ScrollIntoView()
{
InitScrollbars();
Caret.CropPosition();
try
{
Row xtr2 = Caret.CurrentRow;
if (xtr2.VisibleIndex >= View.FirstVisibleRow + View.VisibleRowCount -
2)
{
int Diff = Caret.CurrentRow.VisibleIndex - (View.FirstVisibleRow +
View.VisibleRowCount - 2) + View.FirstVisibleRow;
if (Diff > Document.VisibleRows.Count - 1)
Diff = Document.VisibleRows.Count - 1;
Row r = Document.VisibleRows[Diff];
int index = r.VisibleIndex;
if (index != - 1)
vScroll.Value = index;
}
}
catch {}
if (Caret.CurrentRow.VisibleIndex < View.FirstVisibleRow)
{
Row r = Caret.CurrentRow;
int index = r.VisibleIndex;
if (index != - 1)
vScroll.Value = index;
}
Row xtr = Caret.CurrentRow;
int x;
if (Caret.CurrentRow.IsCollapsedEndPart)
{
x = Painter.MeasureRow(xtr, Caret.Position.X).Width +
Caret.CurrentRow.Expansion_PixelStart;
x -= Painter.MeasureRow(xtr, xtr.Expansion_StartChar).Width;
if (x >= View.ClientAreaWidth + View.ClientAreaStart)
hScroll.Value = Math.Min(hScroll.Maximum, ((x - View.ClientAreaWidth)
/View.CharWidth) + 15);
if (x < View.ClientAreaStart + 10)
hScroll.Value = Math.Max(hScroll.Minimum, ((x)/View.CharWidth) - 15)
;
}
else
{
x = Painter.MeasureRow(xtr, Caret.Position.X).Width;
if (x >= View.ClientAreaWidth + View.ClientAreaStart)
hScroll.Value = Math.Min(hScroll.Maximum, ((x - View.ClientAreaWidth)
/View.CharWidth) + 15);
if (x < View.ClientAreaStart)
hScroll.Value = Math.Max(hScroll.Minimum, ((x)/View.CharWidth) - 15)
;
}
}