#c# #winforms
#c# #winforms
Вопрос:
Я скрываю одну форму, а затем перехожу к другим формам, но я пытаюсь использовать значение переменной, вычисленное в первой форме. Правда ли, что когда я, предположим, в 4-й форме, я не могу использовать эти значения в form1, поскольку они становятся равными нулю. Поскольку моя функция всегда генерирует ноль, используя эти значения, не могли бы вы, пожалуйста, сказать мне, что могло пойти не так? Если это не кажется проблемой, я могу более подробно объяснить проблему с моим кодом, спасибо
Комментарии:
1. Когда вы сохраняете значения, вы сохраняете их непосредственно в действиях формы или используете какие-то объекты.
2. Почему не следует сохранять значение вашей первой формы в
Session
. Есть ли какие-либо проблемы, если да, то проясните свой вопрос.3. Вы создаете новый экземпляр класса Form вместо использования существующего. Если вы программировали на Visual Basic до этого, вы могли бы найти применение. OpenForms удобны.
4. Я использую c sharp и Visual Studio, тогда как мне использовать существующую форму, а не новый экземпляр?
Ответ №1:
Поскольку Form
это класс, формы, которые вы показываете, являются экземплярами этого класса, и, следовательно, данные действительно являются локальными для этой формы. Если вы показываете новый экземпляр, то да, исходные данные исчезли.
Идея заключается в использовании общедоступных методов или свойств для получения данных из этих форм.
public class MyForm : Form
{
TextBox t = new TextBox();
public string TBData
{
get { return t.Text; }
}
}
// outside:
Form f = new MyForm();
f.Show()
//f.TBData will get what is in the text box.
Комментарии:
1. созданные мной формы являются общедоступными, и я пытаюсь использовать значение, созданное в первой форме, в третьей форме, но это не работает
2. @VaibhavAggarwal Есть ли у вас ссылка на первую форму, которая передается другим, в этом случае вы должны иметь доступ к значениям через общедоступные свойства
3. Я создал соответствующие объекты соответствующих форм для вызова его переменных
4. Это не имеет ничего общего с тем, что форма является общедоступной. У вас должна быть ссылка на форму, а затем доступ к ее общедоступным элементам (в данном случае к свойствам)
5. Я это исправил, первоначальный ответ был ключевым, я создавал новый экземпляр формы для функции и, следовательно, данные исчезли. Я сослался на исходный экземпляр, и это сработало!!