i have the standard code for Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace cellap
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
- i created a new project
- i imported an existing form1 into it and replaced the existing form1
-
when i run the app, i get an error on the mentioned line:
Error 1 The type or namespace name ‘Form1’ could not be found (are you missing a using directive or an assembly reference?) C:UsersalexluvsdanielleAppDataLocalTemporary ProjectscellapProgram.cs 18 33 cellap
does anyone know what the problem is?
asked Jul 5, 2010 at 23:29
Alex GordonAlex Gordon
54.6k283 gold badges661 silver badges1046 bronze badges
2
Check your namespace. The existing Form1
is more than likely in a different namespace than cellap
. Check the Form1.designer.cs
class too.
answered Jul 5, 2010 at 23:49
DennisDennis
20.1k4 gold badges63 silver badges80 bronze badges
When you copied the Form did you change it’s namespace so the Program.cs can actually see it?
answered Jul 5, 2010 at 23:49
using ProjectName.folder
Then create an object for the Form1() class like this.
Form1 form1 = new Form1();
Application.Run(form1);
Also, make sure you actually have a Form1.cs
Servy
201k26 gold badges325 silver badges439 bronze badges
answered Aug 22, 2016 at 18:51
respublikantc 0 / 0 / 0 Регистрация: 04.03.2020 Сообщений: 3 |
||||||||
1 |
||||||||
.NET 4.x 04.03.2020, 16:31. Показов 3310. Ответов 1 Метки нет (Все метки)
Вообщем, при работе с курсовой работой появилась ошибка «application.run(new form1()) метод или операция не реализована»
код из формы
__________________
0 |
kolorotur 16736 / 12491 / 3281 Регистрация: 17.09.2011 Сообщений: 20,717 |
||||
05.03.2020, 09:19 |
2 |
|||
Решениеrespublikantc, у вас код всей формы состоит из девяти строчек, разбросанных по трем методам.
Вызова InitializeComponent не должно быть за пределами конструктора.
1 |
- Remove From My Forums
-
Question
-
Trying to run the code here:
http://msdn.microsoft.com/en-us/library/x0tz73t0.aspx
Under Form1.cs, I get a squiggle line under here:
[STAThread]
public
static void Main()Also, under Program.cs, I get a squiggle line under here:
Application.Run(new
Form1());The only way I can get rid of those error is to comment out those sections of code.
If I comment out the code and hit F5, the project doesn’t do anything at all.
What am I missing here?
Answers
-
The compiler doesn’t look for a Program.cs file. The Main method can be in any class.
My guess is that the OP didn’t copy all the code at the linked page. A «using System» may be missing, and the linked page has «Application.Run(new TicTacToe())».
-
Proposed as answer by
Thursday, December 16, 2010 4:42 PM
-
Marked as answer by
Rudedog2
Saturday, December 18, 2010 1:32 PM
-
Proposed as answer by
-
It is time for a «do over».
Create a new Windows Forms application. Add a new class file, and name it «TicTacToe.cs». Paste the sample class at your link into this file. Observe the namespace names. Copy and paste just the content of the class.
You should now get an error that there are more than one Main method if you try to build the application. Open up your Program.cs file and comment out the Main method inside of it. This should clear the error about more than one Main method.
The new class contains a Main method. It can be seen near the bottom of the class. The samples in the MSDN library are not designed to work exclusively inside of the Visual Studio IDE. Most are designed to work from a command line
build.Actually, you may comment out either Main method that you wish. Most people would prefer to comment out the Main method within the form class, TicTacToe. Doing so would require that you modify the Main method in the Program.cs file to start TicTacToe,
instead of Form1. See code posted above.Hope this helps.
Rudy =8^D
Mark the best replies as answers. «Fooling computers since 1971.»
http://rudedog2.spaces.live.com/default.aspx
-
Marked as answer by
ryguy72
Friday, December 17, 2010 2:37 AM -
Edited by
Rudedog2
Friday, December 17, 2010 11:49 AM
-
Marked as answer by
Выскакивает ошибка при закрытии приложен
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Member Рейтинг (т): нет |
Привет всем. Close(); //или так Application.Terminate(); //или так Process.GetCurentProcess().Kill();
Вот с чем вываливается. Что его не устраивает? |
Otello |
|
Senior Member Рейтинг (т): 71 |
А debug что говорит? |
![]() MIF |
|
Application.Exit(); |
newline |
|
Member Рейтинг (т): нет |
Выделяет эту строчку. Application.Run(new Form1());
ObjectDisposedException was unhandled |
![]() archimed7592 |
|
newline, по идее там есть кнопочка copy exception details…скопируй сюда, чего она говорит. |
wdk |
|
А зачем так жестоко-то, Kill сразу? Application.ExitThread(); |
![]() archimed7592 |
|
wdk, да он же говорит — даже Close () вылетает… |
Otello |
|
Senior Member Рейтинг (т): 71 |
Цитата newline @ 01.11.06, 09:17 ObjectDisposedException was unhandled Посмотри выше по коду где убивается Form1. Там и есть проблема |
KotovAlexandr |
|
Full Member Рейтинг (т): 3 |
ObjectDisposedException was unhandled Тут говорится о том , что произошла ошибка при удалении объекта. Я бы проверил с помощью обработки искл. ситуаций : try{ Application.Run(new Form1()); } Узнал бы где ошибка и нажал F1. MSDN всё скажет!!! |
![]() archimed7592 |
|
PMAXIM, |
Otello |
|
Senior Member Рейтинг (т): 71 |
Цитата archimed7592 @ 01.11.06, 10:23 вот ради прикола попробовал убить…managed способом что-то не получается
Убить что? |
![]() archimed7592 |
|
PMAXIM, получается, только форма закрывается и приложение завершается без ошибки. если поставить какой-нить контрол на форму и сделать control.Dispose (), то он исчезнет с формы |
Otello |
|
Senior Member Рейтинг (т): 71 |
Что то я не понял, нормально закрывается или такую же ошибку выдает приложение? |
newline |
|
Member Рейтинг (т): нет |
archimed7592 (OВот что там пишется. |
KotovAlexandr |
|
Full Member Рейтинг (т): 3 |
Выложи код в архиве, посмотрим что там! |
![]() archimed7592 |
|
form.Dispose () -> форма закрывается, если это главная форма, то программа завершается без ошибки. |
Viper |
|
Senior Member Рейтинг (т): 28 |
Остается выяснить что у нас на строке 17… Но походу трабла в попытке доступа к уже освобожденному объекту Form1 |
![]() archimed7592 |
|
newline, с хэндлами в программе работаешь? небось через winapiinterop? показывай где и как… |
Otello |
|
Senior Member Рейтинг (т): 71 |
newline ты после выхода никакой контрол на форму бросать не пытаешься случайно? или еще что нибудь с формой сделать? |
![]() archimed7592 |
|
Цитата Viper @ 01.11.06, 10:38 Остается выяснить что у нас на строке 17 Цитата newline @ 01.11.06, 09:17 Application.Run(new Form1()); Добавлено 01.11.06, 10:42 |
Otello |
|
Senior Member Рейтинг (т): 71 |
Цитата archimed7592 @ 01.11.06, 10:40 Цитата Viper @ 01.11.06, 10:38 Остается выяснить что у нас на строке 17 Цитата newline @ 01.11.06, 09:17 Application.Run(new Form1());
Тогда получается, что после закрытия приложения вызывается Application.Run()? Добавлено 01.11.06, 10:43 |
newline |
|
Member Рейтинг (т): нет |
Вот код приложения public Form1() { InitializeComponent(); Form2 LogDialog=new Form2(); // получается 17 строкой if (LogDialog.ShowDialog(this) != DialogResult.OK) { MessageBox.Show(«Логин или пароль указаны не верно!nПриложение будет закрыто»); Close(); } } |
![]() archimed7592 |
|
newline, не знаю как тебе это удаётся…у меня даже private void Form1_Load(object sender, EventArgs e) { try { Close(); } finally { Controls.Add(new Button()); } } не ругается |
Twilight |
|
Senior Member Рейтинг (т): 24 |
newlineперенеси код проверки пароля или что у тебя там, из конструктора Form1, в main(), либо создавай его в Form1_Load, как у Archimed7592, а то выходит ты в конструкторе уже разрушаешь объет, который в нем должен быть создан |
![]() archimed7592 |
|
ага, а я и не заметил, что я не в конструкторе балуюсь |
Otello |
|
Senior Member Рейтинг (т): 71 |
Цитата archimed7592 @ 01.11.06, 10:55 ага, а я и не заметил, что я не в конструкторе балуюсь Я тоже не в кострукторе проверял |
newline |
|
Member Рейтинг (т): нет |
Ваша правда Twilight. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- .NET: Общие вопросы
- Следующая тема
[ Script execution time: 0,0599 ] [ 16 queries used ] [ Generated: 28.01.23, 13:50 GMT ]
Вопрос:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Test
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
public static Form1 f;
public static Form2 f2;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
f = new Form1();
f2 = new Form2();
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Program.f2.Show();
this.Hide(); }
Кнопка “Ссылка объекта не установлена в экземпляр объекта”. ошибка. Как это исправить? Я не вижу ошибок в моем коде.
Ответ №1
Ошибка:
“В экземпляре объекта не задана ссылка на объект.”
Средства, которые объект u пытается вызвать, еще не инициализированы, вы вызываете f2.Show();
, но вы должны инициализировать его, прежде чем называть его.
Вы должны инициализировать Form2, а затем вызвать его, используя имя, которое вы ему дали.
Заменить:
private void button1_Click(object sender, EventArgs e)
{
Program.f2.Show();
this.Hide();
}
С:
private void button1_Click(object sender, EventArgs e)
{
var f2 = new Form2();
f2.Show();
this.Hide();
}
Ответ №2
Проблема технически лежит здесь:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
f = new Form1();
f2 = new Form2();
Application.Run() фактически блокируется до тех пор, пока основная форма не будет закрыта, поэтому две строки ниже (где вы инициализируете формы) никогда не запускаются. Чтобы “исправить” его, вам нужно будет переместить эти строки вверх:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
f = new Form1();
f2 = new Form2();
Application.Run(new Form1());
Похоже, вы хотели, чтобы “f” была ссылкой на Form1, поэтому вы должны передать это Application.Run():
f = new Form1();
f2 = new Form2();
Application.Run(f);
Однако я бы обернул эти экземпляры в свойстве, чтобы вы могли убедиться, что они созданы правильно (например, когда вы закрываете Form2 и пытаетесь снова открыть его). Это может выглядеть примерно так:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
private static Form1 f1;
private static Form2 f2;
public static Form1 F1
{
get
{
if (f1 == null || f1.IsDisposed)
{
f1 = new Form1();
}
return f1;
}
}
public static Form2 F2
{
get
{
if (f2 == null || f2.IsDisposed)
{
f2 = new Form2();
}
return f2;
}
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(Program.F1);
}
}
Затем в Form1:
private void button1_Click(object sender, EventArgs e)
{
Program.F2.Show();
}