Member 14771221 Ответов: 2

C# form1 и form2 - списки, диалоговые окна


Здравствуйте, я работаю над проектом. И у меня есть список в форме 1 и список в форме 2. Что я уже сделал, так это то, что у меня есть кнопка, которая добавляет значения из numericUpDown в listbox в форме 1 (значения от 1 до 999999). Мне нужна помощь в том, что когда я открываю диалоговое окно(Form2), оно должно отображать значения из listbox(Form1), которые находятся между и включают 1-100 в listbox(form2). После нажатия кнопки с именем "да" он должен сохранить все значения из списка(form2) в текстовый файл.

Спасибо всем, кто готов помочь.

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

Хоть что-то пытались в рамках своих полномочий.

ZurdoDev

У вас есть несколько различных требований. Где ты застрял?

Member 14771221

Я застрял на демонстрации значений в диапазоне от 1 до 100 в списке в форме 2. Я не знаю, как перенести их из формы 1 в форму 2

ZurdoDev

Сохранение в текстовый файл очень просто, поэтому просто google c# save text to file.

Передача значений из одной формы в другую может осуществляться многими различными способами, так что google это тоже делает.

Member 14771221

Я пытался гуглить его много раз. Если бы я это понимал, то не просил бы о помощи прямо сейчас.

Member 14771221

Я попробую это сделать, спасибо.

2 Ответов

Рейтинг:
2

phil.o

Хорошие связи :)

Maciej Los

Спасибо ;)

Рейтинг:
0

phil.o

Вы могли бы дать Form2 конструктор, принимающий перечисление целых чисел в качестве параметра, который вы будете использовать для заполнения второго списка:

public Form2()
{
   InitializeComponent();
}

public Form2(IEnumerable<int> values) : this()
{
   theSecondListBox.Items.AddRange(values);
}
Затем вы создадите экземпляр Form2 экземпляр с помощью нового конструктора:
// In Form1:
Form2 form = new Form2(theFirstListBox.Items.Where(i => i > 0 && i < 101));


Member 14771221

Я действительно не знаю, как реализовать его в своем коде. Похоже, это выходит за рамки моего понимания c#.
-----------------------------------------------------------
частная Pridej_Click недействительным(объект отправителя, EventArgs в электронной)
{
список listbox1.Предметы.Добавить(Ходнота.Ценность);
Hodnota.ResetText();
}

частная Odeber_Click недействительным(объект отправителя, EventArgs в электронной)
{
инт смаз = список listbox1.Свойства selectedIndex;
список listbox1.Предметы.RemoveAt(smaz);
}

private void Form1_MouseClick(отправитель объекта, MouseEventArgs e)
{
использование (Form2 form2 = new Form2())
{
if (form2.ShowDialog() == System.Окна.Формы.свойство DialogResult.ОК)
{
этот.Текст = форме Form2.SelectedText;
}
}
}

Это os far в моем Form1 (как материал для добавления и удаления значений в/из listboxForm1)

Форму Form2 диалоговые окна/окно. Пусто для меня. За исключением простого SelectedText { get; set; }

phil.o

Тогда вам придется глубже погрузиться в свое "понимание c#". Это довольно простые вещи: конструкторы, параметры метода, экземпляры.
Я уже показал вам, как изменить ваш класс Form2, чтобы вы могли создать его экземпляр со списком целых чисел, а также способ создать его на Form1, чтобы воспользоваться преимуществами нового конструктора. Блок кода в вашем комментарии показывает, что вы даже не пытались применить его к существующему коду. Возможно, вам действительно не хватает самых основных вещей о C# / OOP / Windows Forms; в этом случае я могу только посоветовать вам следовать серьезному учебнику о них, прежде чем пытаться реализовать какое-либо конкретное решение. В конечном итоге мы можем предоставить некоторые полезные ссылки для этого, если вам нужно.

Maciej Los

5ed!