/// <summary>
        /// Disp sample
        /// </summary>
        /// <param name="mdFile"></param>
        /// <param name="fileHandle"></param>
        /// <param name="pictureBox"></param>
        /// <param name="dispDelay"></param>
        public void DispSample(string mdFile, FileHandle fileHandle, ref PictureBox pictureBox, int dispDelay)
        {
            // Read md file
            string[] readLines;
            if (File.Exists(mdFile))
            {
                readLines = File.ReadAllLines(mdFile);
            }
            else
            {
                MessageBox.Show("Cannot find the markdown file. ");
                return;
            }

            // Disp
            foreach (string line in readLines)
            {
                // Continue if line is empty
                if (string.IsNullOrWhiteSpace(line))
                {
                    continue;
                }

                // Read bitmap
                string[] lineSplit    = line.Split('(');
                string   imgUrl       = lineSplit[1].Split(')')[0];
                string[] imgUrlSplit  = imgUrl.Split(Path.DirectorySeparatorChar);
                string   outputFolder = fileHandle.OutputFolder;
                int      outputIndex  = outputFolder.LastIndexOf(Path.DirectorySeparatorChar);
                Bitmap   bitmap       = new Bitmap(Path.Combine(outputFolder.Remove(outputIndex, outputFolder.Length - outputIndex),
                                                                imgUrlSplit[imgUrlSplit.Length - 3], imgUrlSplit[imgUrlSplit.Length - 2], imgUrlSplit[imgUrlSplit.Length - 1]));

                // Draw the image
                pictureBox.Image = bitmap;
                pictureBox.Refresh();

                // Delay
                System.Threading.Thread.Sleep(dispDelay);
            }
        }
        /// <summary>
        /// Write label data
        /// </summary>
        /// <param name="skeletonDataLines"></param>
        /// <param name="listBox"></param>
        /// <param name="fileHandle"></param>
        /// <param name="labelname"></param>
        public void WriteLabelData(string[] skeletonDataLines, ListBox listBox, FileHandle fileHandle, string labelname)
        {
            // TXT file to write the skeleton data
            // MD file to write the image url
            string txtName = string.Format("{0}.txt", DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"));
            string mdName  = string.Format("{0}.md", DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss"));

            // Create a sample
            string dataStr = string.Empty;
            string imgStr  = string.Empty;

            foreach (var selectedItem in listBox.SelectedItems)
            {
                // Make sure all the datas are valid
                string[] itemSplit = selectedItem.ToString().Split(' ');
                if (string.IsNullOrWhiteSpace(itemSplit[itemSplit.Length - 1]))
                {
                    MessageBox.Show("Have empty data in the select datas. ");
                    return;
                }

                // add data string
                string   dataline = skeletonDataLines[Convert.ToInt32(itemSplit[0])].Split(':')[1];
                string[] datas    = dataline.Split(',');
                for (int j = 0; j < datas.Length; j++)
                {
                    dataStr += string.Format("{0}\n", datas[j].Trim());
                }

                // add image string: ..\..\..\DataFloder\ImagesFolder\ImageName
                string[] imgPaths = fileHandle.ImgaeFolder.Split(Path.DirectorySeparatorChar);
                string   imgPath  = Path.Combine("..", "..", "..", imgPaths[imgPaths.Length - 2], imgPaths[imgPaths.Length - 1], itemSplit[0] + ".bmp");
                imgStr += string.Format("![{0}]({1})\n\n", itemSplit[0], imgPath);
            }

            // Write
            fileHandle.WriteMsg(Path.Combine(fileHandle.LabelFolder, labelname, txtName), dataStr);
            fileHandle.WriteMsg(Path.Combine(fileHandle.LabelFolder, labelname, mdName), imgStr);
        }