如何从方法 listBox1_MouseClick C# 中获取对象列表
How to get object list from method listBox1_MouseClick C#
当我单击 listbox1
中的项目时,我想用列表对象填充 listbox2
。
private void Form1_Load(object sender, EventArgs e)
{
List<TypeDocClass> object_TypeDocs = SearchAndPopulateTiers(@"C:\TestLoadFiles", "NUM_CLIENT",sender);
this.listBox1.MouseClick += new MouseEventHandler(listBox1_MouseClick);
}
List<TypeDocClass> SearchAndPopulateTiers(string path, string searchText, object sender)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles("FAC*.txt");
var typeDocs = new List<TypeDocClass>();
foreach (FileInfo file in files)
{
string[] content = File.ReadAllLines(file.FullName);
if (content.Any(line => line.ToLower().Contains(searchText.ToLower())))
{
var numTiers = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NUM_CLIENT")
.Select(y => y[1])
.FirstOrDefault();
var nomTiers = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NOM_CLIENT")
.Select(y => y[1])
.FirstOrDefault();
var numFacture = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NUM_FACTURE")
.Select(y => y[1])
.FirstOrDefault();
if (numTiers != null)
{
if ((listBox1.Items.Contains(numTiers) == false))
{
listBox1.Items.Add(new TiersClass
{
TiersName = nomTiers,
TiersId = numTiers
});
typeDocs.Add(new TypeDocClass { Num_Facture = numFacture, TiersId= numTiers });
}
}
else
{
string text = "My text that I want to display";
MessageBox.Show(text);
}
}
}
return typeDocs;
}
void listBox1_MouseClick(object sender, MouseEventArgs e)
{
int index = this.listBox1.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
listBox2.DataSource = ""; //object_TypeDocs
}
}
所以,我不知道如何从另一个方法获取对象列表,我想在 listBox1_MouseClick
中使用 object_TypeDocs
是否可以向 [=16 添加一个新参数=]?
保留对 object_TypeDocs
的引用并在表单加载时对其进行初始化。然后点击鼠标访问它
private List<TypeDocClass> object_TypeDocs = new List<TypeDocClass>();
private void Form1_Load(object sender, EventArgs e)
{
object_TypeDocs = SearchAndPopulateTiers(@"C:\TestLoadFiles", "NUM_CLIENT",sender);
this.listBox1.MouseClick += new MouseEventHandler(listBox1_MouseClick);
}
void listBox1_MouseClick(object sender, MouseEventArgs e)
{
if(object_TypeDocs != null)
{
}
}
当我单击 listbox1
中的项目时,我想用列表对象填充 listbox2
。
private void Form1_Load(object sender, EventArgs e)
{
List<TypeDocClass> object_TypeDocs = SearchAndPopulateTiers(@"C:\TestLoadFiles", "NUM_CLIENT",sender);
this.listBox1.MouseClick += new MouseEventHandler(listBox1_MouseClick);
}
List<TypeDocClass> SearchAndPopulateTiers(string path, string searchText, object sender)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles("FAC*.txt");
var typeDocs = new List<TypeDocClass>();
foreach (FileInfo file in files)
{
string[] content = File.ReadAllLines(file.FullName);
if (content.Any(line => line.ToLower().Contains(searchText.ToLower())))
{
var numTiers = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NUM_CLIENT")
.Select(y => y[1])
.FirstOrDefault();
var nomTiers = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NOM_CLIENT")
.Select(y => y[1])
.FirstOrDefault();
var numFacture = content.Select(y => y.Split('='))
.Where(y => y.Length > 1 && y[0].Trim() == "NUM_FACTURE")
.Select(y => y[1])
.FirstOrDefault();
if (numTiers != null)
{
if ((listBox1.Items.Contains(numTiers) == false))
{
listBox1.Items.Add(new TiersClass
{
TiersName = nomTiers,
TiersId = numTiers
});
typeDocs.Add(new TypeDocClass { Num_Facture = numFacture, TiersId= numTiers });
}
}
else
{
string text = "My text that I want to display";
MessageBox.Show(text);
}
}
}
return typeDocs;
}
void listBox1_MouseClick(object sender, MouseEventArgs e)
{
int index = this.listBox1.IndexFromPoint(e.Location);
if (index != System.Windows.Forms.ListBox.NoMatches)
{
listBox2.DataSource = ""; //object_TypeDocs
}
}
所以,我不知道如何从另一个方法获取对象列表,我想在 listBox1_MouseClick
中使用 object_TypeDocs
是否可以向 [=16 添加一个新参数=]?
保留对 object_TypeDocs
的引用并在表单加载时对其进行初始化。然后点击鼠标访问它
private List<TypeDocClass> object_TypeDocs = new List<TypeDocClass>();
private void Form1_Load(object sender, EventArgs e)
{
object_TypeDocs = SearchAndPopulateTiers(@"C:\TestLoadFiles", "NUM_CLIENT",sender);
this.listBox1.MouseClick += new MouseEventHandler(listBox1_MouseClick);
}
void listBox1_MouseClick(object sender, MouseEventArgs e)
{
if(object_TypeDocs != null)
{
}
}