1

.show() メソッドを呼び出したときにスプラッシュ スクリーンを表示する新しいコンポーネントを作成したいと考えています。コンポーネントは、画像とパラメーターのように渡されるミリ秒単位の期間を持つ Windows フォームのようなものでなければなりません。そのためには、Visual Studio でどのタイプのプロジェクトを選択する必要がありますか? ClassLibrary を選択すると dll クラスが作成されますが、新しい ControlLibrary を選択すると新しいコントロールが作成されますが、Windows フォームは使用できません。

    protected int nSec;

    public SplashScreen(string img, int nSec)
    {
        // duration
        this.nSec = nSec;

        // background splash screen
        this.BackgroundImage = Image.FromFile("img.jpg");

        InitializeComponent();
    }

    private void SplashScreen_Load(object sender, EventArgs e)
    {
        timer1.Interval = nSec * 1000;
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        this.Close()
    }

この「コンポーネント」は、毎回新しいものを作成することなく、他の将来の作業で再利用したいと考えています。

4

2 に答える 2

1

クラスライブラリを作成して、フォームを作成してもらいたいようです。

//Whatever other usings you want
using System.Windows.Forms;  //Include the win forms namespace so you create the form

namespace ClassLibrary1
{
public static class Class1
{

    public static Form CreateNewForm()
    {

        var form1 = new Form();
        form1.Width = 200;
        form1.Height = 200;
        form1.Visible = true;
        form1.Activate();        //Unsure if you need to call Activate...
        //You're going to want to modify all the values you want the splash screen to have here
        return form1;

    }   

}

}

別のプロジェクト、たとえばコンソール アプリでは、作成したばかりのクラス ライブラリを参照し、CreateForm 関数を呼び出すだけで、実行時に幅と高さが 200 のフォームがポップアップ表示されます。

using ClassLibrary1; //You'll need to reference this

    //Standard console app template

    static void Main(string[] args)
    {
        var x = Class1.CreateNewForm(); //Bam form pops up, now just make it a splash screen.
        Console.ReadLine();
    }

それがあなたが探していたものであることを願っています

于 2013-11-09T18:29:37.063 に答える
1

これらのプロジェクト テンプレートの背後に魔法があると思い込まないでください。プロジェクトは自分で簡単に構成できます。クラス ライブラリ プロジェクト テンプレートを使用しても問題ありません。作成したプロジェクトを右クリックし、[新しい項目の追加] を選択して [Windows フォーム] を選択します。フォームを追加してデザイナーで開く以外に、プロジェクトの References ノードに System.Drawing と System.Windows.Forms の 2 つの項目を追加しました。

「Windows フォーム コントロール ライブラリ」プロジェクト テンプレートを選択すると、自動的に取得されます。これにより、UserControl も自動的に追加されました。これは必要ありません。プロジェクトの UserControl1.cs 項目を右クリックして、[削除] を選択します。上記と同様に、新しい項目を追加して「Windows フォーム」を選択します。同じ結果を得る 2 つの方法。

于 2013-11-09T18:35:30.397 に答える