2017-04-01 3 views
1

私の質問は、一般的にマルチフォームプログラムを持つことが許され、維持可能であるということです。より具体的にはC#では、ボタンを別のフォームに移動させることをお勧めします(各ボタンは別のクラスにあります)。次に例を示します。 (この例では、私はプログラマは、私がウェブから情報を収集し、ページからページへ移動して、クイックリファレンスのためのアプリケーションの上に置く必要があるアプリケーションを、参照作成)C#マルチフォームコーディングの練習

メインフォーム:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace ProgramersReference 
{ 
public partial class main : Form 
{ 
    public main() 
    { 
     InitializeComponent(); 
    } 

    //About button click 
    private void btnAbout_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Author: anon \n" 
      +"Version Number: 00.00.01 \n" 
      ,"Information"); //Version Key quickreference: 00(high profile change).00(Medium profile change).00(low profile change) 
    } 

    private void btnWebsites_Click(object sender, EventArgs e) 
    { 
     websiteForm websiteFormObj = new websiteForm(); 
     websiteFormObj.Show(); 
    } 
} 
} 

(DIFFERENT CLASS IN)第二形式:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace ProgramersReference 
{ 
    public partial class websiteForm : Form 
    { 
    public websiteForm() 
    { 
     InitializeComponent(); 
    } 
    } 
} 

これは良い方法ではありません場合は、より良い方法が何であるかを答えることができ、タブコントロールがより良い方法である、または表示するためにパネルを使用し、アプリケーションの新しいコンテンツを隠す?

+0

を助ける私を願っています。それは本当にあなたが作成しようとしているプログラムをdepents。あなたが試みることができるものは、VisualStudioのようなドッキング可能なウィンドウです:http://dockpanelsuite.com/。 –

+0

@TimonPostしかし、今後のメンテナンス性の観点からは、すべてのボタンが別のクラスにあり、同じボタンを別のフォームにマッピングすることをお勧めしますか?コメントありがとうございました。 – Atlas

+0

私は長い時間前にusercontrolでパネルを使用しようとしました。イベントハンドラに注意する必要があります。さもなければメモリがなくなります。私にとっては、タブ付きのドキュメントではるかにクリーンですが、クリーンなコードでは、各タブごとに異なるクラスを作成しようとします。 –

答えて

2

大きなプログラムを見てください。スチームは、各アクションに新しいウィンドウを使用しています。 Visual Studioは、単一のアクションごとに新しいウィンドウをたくさん使用しています。すべてが異なるページのタブを使用しています。それは非常に乱雑になります。

ポップアップウィンドウが作成される理由は、ユーザーからの入力を得るためです。たとえば、次のように

  1. 保存ファイルVisual Studioで新しいクラスを作成するファイル
  2. を開く
  3. 設定を変更します。

これらのポップアップウィンドウはすべて、メインレイアウトとプログラムの目標に影響を与えずに入力が必要な場合に作成されます。これらのウィンドウもすぐに終了します。

ユーザーが何らかの入力をした後すぐに消滅すると、ポップアップウィンドウが表示されます。そしてあなたのプログラムの主な機能をタブに入れてください。

+0

私はもう少し理解しています、あなたに時間をくれてありがとう。 – Atlas

1

私はティモンが言ったことに同意しますが、それはあなたが達成しようとしていることに常に依存します。プログラミングは創造的なプロセスであり、ルールはガイドラインとして見なければならない。あなたのアプリケーションがタブでもっとうまくいくなら、フォームを使うフォームでうまくいくならタブを使います。あなたのクライアントのためのこのアプリケーションを書くことがそれらの問題を議論する場合。ベストプラクティスに関しては、いずれのオプションでも問題は発生しません。

はとりとめが、私はそれがスタイルのレイアウトについての個人的な意見だと思います ダニー