Как создать приложение C# WinForm с независимыми окнамиC#

Место общения программистов C#
Ответить
Anonymous
 Как создать приложение C# WinForm с независимыми окнами

Сообщение Anonymous »

У меня есть приложение WinForm на C#, написанное с помощью Visual Studio. Класс формы главного окна называется Form1 (очень оригинально!). Файл/Новый должен создать новое независимое окно или экземпляр приложения. Я начал с

Код: Выделить всё

    private void newToolStripButton_Click(object sender, EventArgs e)
{
var newForm = new Form1(Countforms);
newForm.Show();
}
Это работает, за исключением того, что все окна закрываются при закрытии первого.
Я также пробовал копировать из Program.cs с помощью

Код: Выделить всё

    private void newToolStripButton_Click(object sender, EventArgs e)
{
Application.Run(new Form1());
}
но при этом возникает ошибка

Код: Выделить всё

Starting a second message loop on a single thread is not a valid operation.

Код: Выделить всё

Program.cs
— это стандартная проблема, это было:

Код: Выделить всё

using System;
using System.Windows.Forms;

namespace Life
{
internal static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Я пробовал удалить [STAThread], но это не помогло.
Я также пробовал различные способы разрыва родительской/дочерней связи между формы. Например. Родитель = ноль; Owner = null в конструкторе.
Единственное, о чем я мог подумать, это создать фиктивную основную форму, которая всегда невидима и которая немедленно запускает Form1 . Form1 затем может учитываться при создании/закрытии новых окон. Фиктивная основная форма закрывается, когда счетчик Form1 достигает нуля. Есть вопрос об использовании Delphi Berlin VCL, который предполагает, что это сработает. И это так.
Есть ли лучший способ заставить «независимые» окна запускаться из меню «Файл» / «Новый»?
Возможно, мне нужен другой способ запуска проекта/приложения.


Подробнее здесь: https://stackoverflow.com/questions/792 ... nt-windows
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»