Есть программа - по клику на кнопку открывает окно выбора папки. После удачного выбора берет файлы из этой папки и их имена пихает в ListView.
Но дело в том, что в моем коде в итоге программа работает только один раз... Что не так? Если перенести инициализацию Listview в другое место - тогда нельзя обращаться к нему для добавления итемов, поскольку переменная листвью находится вне зоны видимости...
Я понимаю, что это ерундовая проблема, но решения не могу найти.
using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void MyButtons()
{
Button b1 = new Button();
b1.Location = new System.Drawing.Point(this.ClientRectangle.Width / 2 - 100 / 2, this.ClientRectangle.Height / 2 - 70/ 2);
b1.Size = new Size(100, 70);
b1.TabIndex = 0;
b1.Text = "Выбрать папку";
b1.UseVisualStyleBackColor = true;
//Вешаем обработчик на кнопку
b1.Click += new EventHandler(b1_click);
Controls.Add(b1);
}
public void b1_click(object sender, EventArgs e)
{
FolderBrowserDialog FBD = new FolderBrowserDialog();
if (FBD.ShowDialog() == DialogResult.OK)
{
// Инициализация и настроки ListView
ListView ListView1 = new ListView();
ListView1.Location = new System.Drawing.Point(12, 12);
ListView1.Name = "ListView1";
ListView1.Size = new System.Drawing.Size(245, 200);
ListView1.BackColor = System.Drawing.Color.DarkOrange;
ListView1.ForeColor = System.Drawing.Color.Black;
Controls.Add(ListView1);
// Добавляем файлы из выбранной директории в ListView
System.IO.DirectoryInfo DI = new System.IO.DirectoryInfo(FBD.SelectedPath);
foreach (System.IO.FileInfo FI in DI.GetFiles())
{
ListView1.Items.Add(FI.Name);
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
MyButtons();
}
}
}