Alsing.Windows.Forms.SyntaxBox.EditViewControl.ScrollIntoView C# (CSharp) 메소드

ScrollIntoView() 공개 메소드

Scrolls the caret into view.
public ScrollIntoView ( ) : void
리턴 void
        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)
                        ;
            }
        }

Same methods

EditViewControl::ScrollIntoView ( TextPoint Pos ) : void
EditViewControl::ScrollIntoView ( int RowIndex ) : void