У меня есть приложение Winforms, Я пытаюсь сделать так, чтобы вы могли запускать определенные методы через командную строку, не отображая форму.
Он работает с аргументами командной строки, но теперь он не открывает форму без аргументов ..
вот мой главный
static void Main(String[] args)
{
Form1 f = new Form1();
if (args.Length > 0)
{
if (args[0] == "/s")
{
MessageBox.Show("Prepping Backup");
Backup();
}
}
else
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
catch (Exception e)
{
Console.WriteLine(e);
Logevent(e.ToString(), "warn", 25);
}
}
}
У вас есть args.Length> 0, где первый аргумент не "/ s"?
Вы можете попробовать добавить params перед String[] args
Вы создаете свою форму дважды; удалите первый Form1 f = new Form1();.
Что же делает отладчик, когда вы выполняете код?
@DourHighArch Это исправило! добавьте в качестве ответа, чтобы я мог его принять!
Просто удалите вопрос; это локальная опечатка, которая никому не пригодится.





Application.SetCompatibleTextRenderingDefault(false);
необходимо вызвать перед созданием первого экземпляра формы. Поместите это перед
Form1 f = new Form1();
и он будет работать как положено.
Редактировать
Это создаст ненужный экземпляр формы, поэтому другой вариант - удалить
Form1 f = new Form1(); полностью
Пожалуйста, укажите причину, прежде чем пометить ее как бесполезную. Не дай мне упустить шанс научиться.
Это не сработает, потому что позже он создает еще один new Form и игнорирует первый; ему нужно полностью удалить Form1 f = new Form1();.
Значит, вы имеете в виду, что у вас не может быть 2 экземпляра формы одновременно? До тех пор, пока он не планирует использовать только один экземпляр и не путается между двумя экземплярами, вы правы.
Вы можете, но он вообще не использует форму f. Он также создает его перед проверкой аргументов, которые ему нужно сделать в первую очередь.
Обратитесь к этому: social.msdn.microsoft.com/Forums/windows/en-US/…
Я согласен, что он не использует первый экземпляр, но причина его работы - та, которую я упомянул в ответе. Мы оба правы, ведь всегда есть несколько способов решить проблему.
Нет, ваш ответ не «правильный». Если есть аргументы, OP не хочет иметь форму. Ваше решение по-прежнему создает его без необходимости, даже если оно этого не показывает. Вы должны исправить свой ответ.
что идет не так?