我有一个多行TextBox
,我希望一旦鼠标左键单击释放,我通过鼠标从TextBox
中选择的文本应添加到List
。< / p>
列表定义为
public List<string> PtagName = new List<string>();
我参考了这个问题
如图所示,无论我通过鼠标左键单击从TextBox
选择的内容,它都会被添加到列表中
答案 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();
}