Exemplo n.º 1
0
        /// <summary>
        /// 
        /// </summary>
        public MyTextbox()
        {
            vScrollBar = new VScrollBar();
            hScrollBar = new HScrollBar();

            vScrollBar.Dock = DockStyle.Right;
            hScrollBar.Dock = DockStyle.Bottom;
            vScrollBar.Value = 0;
            vScrollBar.Minimum = 0;

            vScrollBar.Scroll += vScrollBar_Scroll;
            vScrollBar.ValueChanged += vScrollBar_ValueChanged;

            this.Controls.Add(vScrollBar);
            this.Controls.Add(hScrollBar);

            list = new List<MyLine>();
            MyLine firstLine = new MyLine();
            list.Add(firstLine);
            this.Font = MyTextboxDefaultValue.Font;
            this._returnCode = MyTextboxDefaultValue.ReturnCode;
            this.AllowDrop = true;
            this.DragDrop += new DragEventHandler(MyTextbox_DragDrop);
            caret = new Caret(this.Handle, 2, this.Font.Height);
            CurrentPhysicalPosition = new PhysicalPosition(0, 0);
            history = new List<Task>();
        }
Exemplo n.º 2
0
 public MyLine(string str, MyReturnCode myReturnCode)
 {
     // TODO: Complete member initialization
     this.Text = str;
     this.ReturnCode = myReturnCode;
 }
Exemplo n.º 3
0
 static MyTextboxDefaultValue()
 {
     Font = new Font("メイリオ", 10);
     Brush = Brushes.Black;
     ReturnCode = new MyReturnCode(returnCode.CRLF);
 }
Exemplo n.º 4
0
 public MyLine()
 {
     Text = "";
     this.ReturnCode = new MyReturnCode();
 }
Exemplo n.º 5
0
        /// <summary>
        /// List&lt;MyLine&gt;の中のMyLine中にある文字列の改行コードを見つけて、MyLineを再帰的に分割する。
        /// </summary>
        /// <param name="ret">処理し終えた部分</param>
        /// <param name="tmp">未処理部分</param>
        /// <param name="returnCode"></param>
        /// <returns></returns>
        private List<MyLine> LineSplitter(List<MyLine> ret, List<MyLine> tmp, MyReturnCode returnCode)
        {
            // もう処理するものが無かったら、終わり
            if (tmp.Count == 0) return ret;
            else
            {
                // 未処理の配列の先頭行を取得し、未処理配列から消す。
                MyLine a = tmp[0];
                tmp.RemoveAt(0);

                // 文字列をreturnCodeで分割する。
                string[] arr = MyLibrary.MyStringTool.StringSplitter(a.TextWithoutReturnValue, returnCode.ToString());

                // 分割した文字列を1つずつ配列に変換する。
                for(int i = 0;i<arr.Length;++i)
                {
                    ret.Add(new MyLine(arr[i], returnCode));
                }
                // 処理中配列の最後の要素の改行コードはreturnCodeではなく、a.ReturnCodeである。
                ret[ret.Count - 1].ReturnCode = a.ReturnCode;

                return LineSplitter(ret, tmp, returnCode);
            }
        }