public CharacterDocumentViewer() {
            _enableAutoScrollBarAdjustment = true;
            _transientLines = new List<GLine>();
            InitializeComponent();
            //SetStyle(ControlStyles.UserPaint|ControlStyles.AllPaintingInWmPaint|ControlStyles.DoubleBuffer, true);
            this.DoubleBuffered = true;
            _caret = new Caret();

            _splitMark = new SplitMarkSupport(this, this);
            Pen p = new Pen(SystemColors.ControlDark);
            p.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
            _splitMark.Pen = p;

            _textSelection = new TextSelection(this);
            _textSelection.AddSelectionListener(this);

            _mouseHandlerManager = new MouseHandlerManager();
            _mouseHandlerManager.AddLastHandler(new TextSelectionUIHandler(this));
            _mouseHandlerManager.AddLastHandler(new SplitMarkUIHandler(_splitMark));
            _mouseHandlerManager.AttachControl(this);

            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        }
 //キャレットの座標設定、表示の可否を設定
 protected virtual void AdjustCaret(Caret caret)
 {
 }
        protected override void AdjustCaret(Caret caret)
        {
            if (_session == null)
                return;

            if (IsConnectionClosed() || !this.Focused || _inIMEComposition)
                caret.Enabled = false;
            else {
                TerminalDocument d = GetDocument();
                caret.X = d.CaretColumn;
                caret.Y = d.CurrentLineNumber - d.TopLineNumber;
                caret.Enabled = caret.Y >= 0 && caret.Y < d.TerminalHeight;
            }
        }
 //キャレットの座標設定、表示の可否を設定
 protected virtual void AdjustCaret(Caret caret) {
 }