如何将文本框中的鼠标选定文本添加到列表中

时间:2013-08-01 07:20:29

标签: c# winforms

我有一个多行TextBox,我希望一旦鼠标左键单击释放,我通过鼠标从TextBox中选择的文本应添加到List。< / p>

列表定义为

 public List<string> PtagName = new List<string>();

我参考了这个问题 enter image description here

如图所示,无论我通过鼠标左键单击从TextBox选择的内容,它都会被添加到列表中

3 个答案:

答案 0 :(得分:3)

你去了:希望它有所帮助。

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace TextBoxLines
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public List<string> PtagName = new List<string>();

        private void textBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                if (textBox1.SelectedText.Length > 0)
                {
                    string[] lines = textBox1.SelectedText.Split('\n');
                    foreach (var line in lines)
                    {
                        PtagName.Add(line);
                    }
                }
                foreach (var line in PtagName)
                    MessageBox.Show(line);

                PtagName.Clear();
            }
        }
    }
}

答案 1 :(得分:0)

您必须在textBox的MouseUp事件处理程序中处理:

private void textBox1_MouseUp(object sender, MouseEventArgs e){
  if(e.Button == MouseButtons.Left){
     if(textBox1.SelectedText.Length > 0) PtagName.Add(textBox1.SelectedText);
  }
}

答案 2 :(得分:0)

处理mouseup事件并在那里执行所有任务。

public void mytextbox_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
   if (mytextbox.SelectionLength == 0 || e.Button != MouseButtons.Left) return;
   PtagName = mytextbox.SelectedText.Split(new [] { '\r', '\n' }).ToList(); 
}