2013-04-11 4 views
-2

Я пытаюсь получить доступ к форме из моей основной формы моего проекта. Новое имя формы будет AboutBox1, и я хочу, чтобы он был открыт, когда пользователь нажимает кнопку «О панели инструментов».Доступ к нескольким формам в C#

Когда я иду в код в О кнопках, хотя Intellisense не признает свою новую форму (AboutBox1) ToolStrip, что я создал

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

Ниже приведен код, который у меня есть. (Игнорировать все вещи в середине, кнопки панели инструментов, которую необходимо нажать, чтобы получить доступ к новой форме находится в нижней части) https://gist.github.com/anonymous/5366535

+1

где код? – Csharp

+1

Да, я знаю, что вы добавили ссылку, но, пожалуйста, предоставьте соответствующие строки кода в своем сообщении, если страница 404. – gunr2171

+3

Почему вы задаете один и тот же вопрос дважды? http://stackoverflow.com/questions/15956542/brand-new-to-c-need-help-showing-multiple-forms-in-vs – Csharp

ответ

0

в OnClick-Handler из вас MenuItem:

//assuming AboutBox is derived from Form 
AboutBox AboutBox1 = new AboutBox(); 
AboutBox1.Show(this); 
+0

Нет необходимости использовать 'this' в вызове функции. Имея ссылку на объект, достаточно, чтобы получить данные во вторую форму. Наличие ссылки на родительскую форму в конструкторе - лучший способ вернуть данные, в моем мнении. – gunr2171

+0

разница заключается в том, что AboutBox будет модальным, если вы используете вызов с параметром owner –

+0

[MSDN] (http://msdn.microsoft.com/en-us/library/szcefbbd (v = vs.100). aspx) говорит: «Вы можете использовать этот метод для отображения немодальной формы». Эта форма не будет модальной. Используйте 'ShowDialog', чтобы сделать его модальным. – gunr2171

0

Первый , если вам нужен доступ к вашей форме вне метода, сделайте переменную в верхней части класса.

AboutBox1 frmAboutBox; 

[STAThread] 
... 

Но, видя это о странице, я не думаю, что вам это нужно.

Затем создайте и запустите форму.

AboutBox frmAboutBox = new AboutBox(); 
frmAboutBox.Show(); 

Вы также можете сделать frmAboutBox.ShowDialog(), чтобы сделать форму вновь люк всегда быть на вершине.

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