В проекте Windows-приложения (C #, Visual Studio 2010) я просто хочу перейти на новую форму запуска (оставив старую, уже протестированную, как есть).В program.cs я закомментирую «старую» форму и представляю мой новый «клон»:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1()); // this working form uses ListBox
Application.Run(new GridForm()); // want this new form which uses DataGridView
}
Оба Form1 и GridForm находятся в одном проекте, и оба имеют одинаковые директивы using.(фрагмент следует):
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
using System.Xml.XPath;
using System.IO;
using System.Reflection;
using CBMI.Common;
using log4net;
using log4net.Config;
namespace CBMI.WinFormsUI
{
public partial class GridForm : Form
{
private string defaultRootFolder;
public static readonly ILog log = LogManager.GetLogger(typeof(GridForm));
public GridForm()
{
InitializeComponent();
}
Похоже на смехотворно простой вопрос / вопрос, но я в тупике.
EDIT-UPDATE:
Каким-то образом в процессе клонирования / «рефакторинга» я испортил пространство имен в более новой форме, введя изменение регистра.Это было обнаружено при попытке вашего предложения следующим образом:
private void Form1_Load(object sender, EventArgs e)
{
CBMI.WinFormsUI.GridForm improvedForm = new CBMI.WinFormsUI.GridForm();
improvedForm.Show();
return;
Form1.cs имеет пространство имен, закодированное следующим образом:
namespace CBMI.WinformsUI
GridForm.cs имеет пространство имен, закодированное следующим образом (обратите внимание на CamelCase):
namespace CBMI.WinFormsUI
РЕДАКТИРОВАНИЕ-ОБНОВЛЕНИЕ : Какова лучшая практика для клонирования / рефакторинга новой формы?
Iзабудь как я взломал новую форму.Я думаю, что я начал с «добавить новый элемент» в проект, дал ему новое имя и сохранил.Затем я вручную скопировал некоторый код из оригинала и представил новое представление данных и т. Д. И удалил предыдущие элементы управления пользовательского интерфейса из новой формы.Мне всегда было немного неловко пытаться оставить «версию 1» работающей и ввести новую расширенную вещь, созданную из «старой».Как "профи" делают такие вещи?