Причины переменное имя является пустым, потому что вы создаете совершенно новый объект Form1 в вашем CheckLogin() метод, вместо использования уже существующий объект Form1.
Возможно, у ваших классов есть ссылки друг на друга.
Вот один пример, который вы могли бы попробовать, имея формы имеют ссылки на один другой класс
Form1:
public class Form1 : Form
{
// Class variable to have a reference to Form2
private Form2 form2;
// Constructor
public Form1()
{
// InitializeComponent is a default method created for you to intialize all the controls on your form.
InitializeComponent();
form2 = new Form2(this);
}
public String Return_inf()
{
names = U_name.Text;
return names;
}
}
Form2 класс:
public class Form2 : Form
{
// Class variable to have a reference back to Form1
private Form1 form1;
public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}
public string CheckLogin()
{
// There is no need to create a Form1 object here in the method, because this class already knows about Form1 from the constructor
string name=form1.Return_inf();
// Use name how you would like
}
}
Есть другие способы сделать это, но ИМО это будет основой обмена данными между двумя формами.
Где вы получаете значение в 'U_name.Text'? – Johnrad
Это значение, которое извлекается из textBox – user3575275
Просто для того, чтобы найти причину ... Попробуйте присвоить имена в свой метод 'Return_inf()' что-то постоянное. Посмотрите, работает ли это, если это произойдет, тогда мы знаем, что проблема заключается в чтении этого текстового поля. – Johnrad