/// <summary>
        /// 在指定處斷行。
        /// </summary>
        /// <param name="row"></param>
        /// <param name="col"></param>
        private void BreakLine(int row, int col)
        {
            int wordIdx = GetBrailleWordIndex(row, col);

            if (wordIdx == 0)   // 若在第一個字元處斷行,其實就等於插入一列。
            {
                InsertLine(row, col);
                return;
            }

            int         lineIdx = GetBrailleLineIndex(row);
            BrailleLine brLine  = m_BrDoc.Lines[lineIdx];

            BrailleLine newLine = brLine.Copy(wordIdx, 255); // 複製到新行。

            newLine.TrimEnd();                               // 去尾空白。
            m_BrDoc.Lines.Insert(lineIdx + 1, newLine);
            brLine.RemoveRange(wordIdx, 255);                // 從原始串列中刪除掉已經複製到新行的點字。

            OnDataChanged();

            // Update UI

            // 換上新列
            RecreateRow(row);
            FillRow(m_BrDoc[lineIdx], row, true);

            // 插入新列
            GridInsertRowAt(row + 3);
            FillRow(m_BrDoc[lineIdx + 1], row + 3, true);

            // 重新填列號
            RefreshRowNumbers();

            SourceGrid.Position pos = new SourceGrid.Position(row + 3, brGrid.FixedColumns);
            brGrid.Selection.Focus(pos, true);    // 修正選取的儲存格範圍。
        }