Member 12680048 Ответов: 1

Попытка сгенерировать кнопки, их имена и числовое значение для каждой кнопки из текстового файла для чтения


Привет всем, я все еще довольно новичок в C# и работаю над проблемой в одном из своих заданий. Я успешно смог прочитать текстовый файл в свой код и перенести список в listbox. это было только для проверки. Затем я смог сгенерировать одинаковое количество кнопок для каждого элемента из текстового файла в панель. Однако я не могу заставить имена элементов стать текстом в кнопках, а затем присвоить каждой кнопке/имени правильное значение, чтобы затем выполнить вычисления. Я не уверен, что пытаюсь объединить два совершенно разных способа приближения к этому результату, но любая помощь будет оценена по достоинству.

Что я уже пробовал:

это класс form с методом загрузки формы

открытый form1()
{
метод InitializeComponent();
}

List & lt;appliances> allEntry = новый список & lt;appliances>();

общественного недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{

allEntry = ApplianceDA. GetAppliances();

DisplayButtons();
}

public void DisplayButtons()
{
int product = 0;
int startTop = 10;
int startLeft = 10;

по каждому элементу (техника АП в allEntry)
{

Кнопка appButton = новая кнопка();
этот.Управления.Добавить (appButton);
appButton.Текст = ("");
appButton.Местоположение = новая система.Рисование.Точка (startTop + (125 * product), startLeft);
appButton.Высота = 58;
appButton.Ширина = 120;
// appButton.Нажмите += AButton_Click();
pnlBox.Controls.Добавить (appButton);

продукт++;
}
}

а вот и класс ApplianceDA, который читает текстовый файл

статический класс ApplianceDA
{
private const string PATH = "Appliances.txt";


публичный статический список & lt;appliances> GetAppliances()
{
List & lt;appliances> appliance = новый список & lt;appliances>();
Что streamreader textin в = новый поток streamreader(новый файловый поток(Путь, содержит filemode.OpenOrCreate, FileAccess. Read));
в то время как (textIn.Peek ()! = -1)
{
строка row = textIn. ReadLine();
string[] columns = строка.Расщеплять(',');

Appliances product = new Appliances(столбцы[0], Convert.ToInt64(столбцы[1]));

прибор.Добавить (продукт);
}

текстин.Закрывать();

возвратное устройство;
}

BillWoodruff

В цикле, где вы создаете кнопки, вы не используете объект ' ap в цикле: почему это так ? Содержит ли каждый экземпляр приложения что-то, что вы можете использовать для имени или для текста на кнопке ?

1 Ответов

Рейтинг:
0

RossMW

Когда вы создаете кнопки, вы устанавливаете кнопку appButton.Текст должен быть пустым.

Попробуйте установить его на ap.ToString () или текстовое значение, которое вам нужно.