Основной метод VB.net не выполняется

Я начал изучать vb.net, имея опыт работы с C#.

Я пытался перепрограммировать имевшуюся у меня простую программу winforms на С#, которая использовала параметры командной строки, чтобы определить, что она делает. В C# всегда есть метод main для приема этих аргументов.

Из того, что я читал, vb.net реализует для вас основной метод, как только вы укажете начальную форму, если только вы не сделаете ее самостоятельно. Это хорошо, но тот, который я реализовал, похоже, игнорируется, я поставил точки останова, чтобы увидеть, просматривается ли код, но ничего. Основная подпрограмма находится в объявлении класса стартовой формы следующим образом:

Public Class FrontScreen
    <STAThread()> _
    Shared Sub Main()
        Dim mainWindow As FrontScreen = New FrontScreen()
        MessageBox.Show("Hello! I'm exectuing!")
        Application.Run(mainWindow)
    End Sub
End Class

Очевидно, что позже я добавлю больше кода в основной метод, но сейчас я просто хотел бы, чтобы появилось окно сообщения, показывающее, что мой основной подпрограмма действительно выполняется. Я, вероятно, делаю что-то действительно очевидное неправильно, но из примеров, которые я видел, я не могу сказать, что. Любые идеи?

Спасибо, Энди.


person Community    schedule 22.11.2010    source источник


Ответы (4)


Посмотрите в свойства вашего проекта:

  1. Снимите флажок с «Включить структуру приложения».
  2. В раскрывающемся списке «Автозапуск объекта» выберите запись «Sub Main».

Подосновные свойства

person Heinzi    schedule 22.11.2010
comment
Да, это сработало! Теперь у меня есть окно сообщения, я знал, что это что-то простое. Я нахожусь на этапе изучения нового языка, где все меня смущает, но становится лучше. Я думаю, мне нужно будет прочитать о структуре приложения. Спасибо! - person ; 23.11.2010
comment
@Andrew: Вот хорошая статья об этом, если вы хотите знать, что на самом деле делает Application Framework: visualstudiomagazine.com/articles/2007/10/01/. Если вы хотите, чтобы ваше приложение было близко к версии C#, вы, вероятно, не захотите его использовать. Для чистого приложения VB у него есть несколько приятных особенностей. - person Heinzi; 23.11.2010
comment
Я нахожу сумасшествием, что сегодня нет даже объекта запуска. Теперь это просто ФОРМА запуска. - person sinni800; 10.03.2011

Если вас интересуют только аргументы командной строки, то другим вариантом, кроме перехвата метода Main, является использование Environment.GetCommandLineArgs.

person JaredPar    schedule 22.11.2010
comment
Я об этом не подумал, но они мне нужны при запуске программы. И поскольку я копирую программу на C#, я хочу, чтобы она была как можно более похожей и использовала «Main». - person ; 23.11.2010

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

Вместо этого попробуйте Msgbox("Message").

Надеюсь, это поможет.

person David Brunelle    schedule 22.11.2010
comment
Я начал ставить точки останова в основной сабвуфер на случай, если что-то подобное, но это не срабатывало. В любом случае, я не думаю, что форма должна показывать окно сообщения. - person ; 23.11.2010

Чтобы помочь вам в переходе с C# на VB.NET, этот сайт сборник разработчиков преобразует код C# в VB.NET. Надеюсь, вы сможете увидеть, как соотносятся эти два языка.

person Community    schedule 22.11.2010
comment
Спасибо за ссылку, посмотрю этот сайт. - person ; 23.11.2010