2010-08-31 63 views
1

我有一個現有的應用程序(C#/ Win窗體)。我需要爲應用程序添加功能,以便可以啓動其自己的另一個實例並禁用窗體中的某些控件。使用簡單繼承來實現它可能非常容易,或者可能是一些if else循環,但是此應用程序必須通知其相關的程序集狀態。我正在尋找最優雅的做這件事。我並不熱衷於修改當前文件,只是添加到現有功能上。任何建議都會有很大的幫助。多版本的應用程序

+0

什麼是你想要完成的高級描述?爲什麼你需要兩個不同的實例? – JoshVarga 2010-08-31 02:26:23

+0

我需要啓動應用程序的只讀版本。這將禁用窗體上的一些控件。第二個實例將使用第一個菜單啓動。 – Dhruv 2010-08-31 02:56:52

回答

1

可以啓動另一個實例是這樣的:

 System.Diagnostics.Process.Start(
      System.Reflection.Assembly.GetEntryAssembly().Location, 
      "disable"); 

可以在表單構造測試與代碼的命令行參數如下:

public Form1() { 
     InitializeComponent(); 
     if (Environment.CommandLine.ToLower() == "disble") { 
      button1.Enabled = false; 
      // etc.. 
     } 
    } 

要調試這一點,你必須使用項目+屬性,調試選項卡,取消選中「啓用Visual Studio託管過程」。

+0

謝謝。合理接近我的要求。但這是最優雅的方式嗎?由於控制的禁用必須在很多形式和引用程序集中完成。 – Dhruv 2010-09-01 03:44:36

+0

好吧,讓它成爲一個靜態屬性。我相信你可以根據自己的喜好將它打成形狀。 – 2010-09-01 03:46:18