2014-01-20 6 views
0

Уверен, что это простой вопрос для ответа, но мне трудно реализовать его, как мне нужно.Назначение поля текстового поля в отдельной форме

Я использую Visual Studio 2013 и C#

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

Вторая форма напоминает сетку головоломки, которая генерируется, когда пользователь нажимает кнопку подтверждения в первой форме.

Когда человек правильно решил головоломку, появляется окно с указанием времени, которое требуется для решения.

Что я хочу сделать, это добавить поле идентификатора пользователя в строку сообщения.

Я видел много примеров использования полей событий и полей ввода и настройки, но большинство из них предполагает, что одна форма формируется из предыдущей формы, где я просто хочу «захватить» информацию из одной формы и сохранить ее на второй формы для использования в строке.

Ссылки на учебные пособия также будут оценены, если это будет проще.


Я узнал, что я делаю неправильно, с помощью ответов каждого.

У меня были переменные, объявленные в первой форме, но они были объявлены в методах textbox_leave и updownBox_leave, когда они должны были быть объявлены в самом начале класса.

Тогда я только что назвал Form1.IdString и Form1.puzzleNumberString из моего Form2, и что-то-вы-знаете, все прошло так, как я думал.

+0

дубликат: http: // stackoverflow.com/questions/1559770/send-values-from-one-form-to-another-form-in-c-sharp-winforms-application –

+0

@ChristopheDeTroyer Я прочитал этот вопрос перед публикацией, это было близко к тому, что я просил , но их программный путь был совершенно иным, чем подход, который я принимал. Спасибо, что нашли время, чтобы рассмотреть мой вопрос. – smokeAndMirrors

ответ

3

Это довольно simple.All вам нужно сделать, это передать переменную идентификатор второй формы constructor.For например, в вашем Confirm Кнопка нажмите:

Form2 f2 = new Form2(myVariable); 
f2.Show(); 

И вы должны добавить конструктор к Form2:

public string ID { get; set; } 

public Form2(string id) 
{ 
    InitializeComponent(); 
    ID = id; 
} 

Затем вы можете использовать переменную ID во второй форме.

+0

Спасибо за ваш комментарий. Это не сработало для меня. Я, вероятно, просто перезапущу проект с другим расположением форм, так что некоторые учебники будут легче следовать. – smokeAndMirrors

0

В вашей форме головоломки создать глобальную переменную форму, а затем дать конструктору параметр Form f и установить глобальную form переменную в качестве передаваемого параметра:

public Form form = null; 
public PuzzleForm(Form f) //puzzle form constructor 
{ 
    form = f; 
} 

затем перейти в вашу первую форму и где вы создаете экземпляр формы головоломки меняет его так, что он передает экземпляр этого.

PuzzleForm pf = new PuzzleForm(this); 

Теперь внутри вашей головоломки формы вы можете получить доступ к переменным Form1 как так MessageBox.Show("UserID: "+form.userID.Text);

Смежные вопросы