Есть форма FormData
и форма FormResult
.
На первой есть textBox
и Button
.Обе формы в одном namespace. На первой форме у кнопки есть обработчик:
private void resButtonClick(object sender, EventArgs e)
{
string path = textBox.Text;
FormResult res = new FormResult();
res.Show();
}
В namespace есть класс DataClass
для обработки .xml
файла, содержащий метод, принимающий путь из textBox
. Этот метод мы вызываем для заполнения таблици на форме FormResult
(метод читает данные из файла и по ним строит DataGridView
):
DataClass class = new DataClass();
BindingList<Row> data = new BindingList<Row>();
foreach (Row row in class.MakeRows(path))
{
data.Add(row);
}
При вызове метода происходит ошибка: Ошибка CS0103: Имя "path" отсутствует в текущем контексте.
Обработчик private
, а значит путь не виден другой форме. Решил попробовать вместо path использовать textBox.Text
, но для этого что надо создать конструктор формы (FormResult
) и передать ему ссылку на первую форму, используя this
? Может и не так, но я попробовал.
Можно попробовать передать параметр через конструктор.
В FormResult
сделать так:
private string _path;
. . .
public FormResult(string path)
{
. . . // какой-то стандартный код из шаблона.
this._path = path;
}
В FormData
:
string path = textBox.Text;
FormResult res = new FormResult(path);
res.Show();
Но, вообще это не совсем удачный вариант. На будущее, лучше задействовать паттерны наподобие MVP или MVVM. Но, для простой программки сойдёт.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите, пожалуйста, как вывести каждую позицию слова в отдельному столбце грида? Вывожу позиции так:
У меня есть программа, которая парсит данные с сайта и сохраняет их по одному экземпляру в файлы f1json , f2
Всем приветУ меня есть на одной линии машина и три триггера, идущих друг за другом
Не записывает текст в файл=( Подскажите, пожалуйста, что не так?