如何用鼠标单击在文本框中获取列表框项
本文关键字:获取 列表 文本 何用 鼠标 单击 | 更新日期: 2023-09-27 18:01:24
我有一个名为listbox1
的列表框,其中收集电子邮件。我想通过选择textbox1
中的listbox1
项来获得该项。
我可以这样做:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox1.Text = listBox1.SelectedItem.ToString();
}
所有邮件格式相同:a@gmail.com
, b@gmail.com
。我想在没有@gmail.com
部分的文本框中选择的项目。
我怎样才能做到这一点?
列表框中收集的项为:
- ab@gmail.com
- bc@gmail.com
- gh@gmail.com
在本例中,我只想取ab
或bc
或gh
您可以使用String。IndexOf方法查找@
符号的位置,然后使用String。从电子邮件中获取用户名的子字符串:
var emails = new List<String>()
{
"abc@gmail.com",
"xyz123@gmail.com",
"a@gmail.com"
};
emails.ForEach(email =>
{
Console.WriteLine(email.Substring(0, email.IndexOf("@")));
});
示例输入的输出为:
abc
xyz123
a
应用于文本框,解决方案可以像这样:
var email = listBox1.SelectedItem.ToString();
textBox1.Text = = email.Substring(0, email.IndexOf("@"));
这可以通过查找'@'
标志的索引,然后使用SubString()
仅用于电子邮件地址来完成。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedEmail = listBox1.SelectedItem.ToString();
textBox4.Text = selectedEmail.SubString(0, selectedEmail.IndexOf("@") - 1);
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox4.Text = listBox1.SelectedItem.ToString().Split('@')[0];
}