0

C# (Java からの切り替え) は初めてで、C# の GUI を理解するのに少し苦労しています。

私が持っているコードを貼り付けるだけで、ほとんどの部分を説明できます。

メインクラス:

 Frame frame;
 keepRunning = true;

 public GraphicsComponent()
 {
     frame = new Frame();
     frame.Show();
 }

 public void run()
 {
    while (keepRunning)
    {
       Console.WriteLine("Running");
    }
 }

 public static void Main()
 {
    GraphicsComponent gameComponent = new GraphicsComponent();

    gameComponent.run();
}

frame.Show() メソッドを使用すると、表示されたり消えたりします。しかし、「実行中」のループは実行されます。

私が見た他の方法は、ShowDialoge() と呼ばれる別のメソッドです。これは、ウィンドウを開いたままにしますが、ウィンドウが閉じられるまで残りのコードの実行をブロックします。

私がそれを使用したい方法は、基本的にJavaでGUIがどのように機能するかです。コードの残りの部分で、必要に応じてオブジェクト (およびそのコンポーネント) を参照できる場所。

ありがとうございます!

編集:多くの混乱があるため、ここに私のフレームクラスがあります:

public partial class Frame : Form
{
    public Frame()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}
4

1 に答える 1

1

winforms アプリケーションを開始する通常の方法は、ファイル -> 新しい winforms プロジェクトによるものです。これを行うと、Main メソッド (アプリケーションへのエントリ ポイント) を含む "Program.cs" が得られます。そこから、次のようなコードがあります。

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new ConfigForm());
    }

この例では、フォームである新しい「ConfigForm」を開始し、その ctor に次のようなコードが含まれています。

    public ConfigForm()
    {
        InitializeComponent();

        // Other init work here

    }

プロジェクトを右クリックしてフォームを作成し、新しいフォームを追加します。

Application.Runメソッドを調べることをお勧めします。こちらを参照してください。アプリケーションの実行中に実行されるメイン フォームとなる「メイン フォーム」を指定できます。閉じるとアプリケーションが終了します。必要に応じて他のオプションを指定することもできます。おそらく最も簡単な解決策は、メイン フォームを開始することです。フォームはアプリケーションの実行中は有効であるため、そのフォーム内で実行時間の長い他のコードを開始できます。ある種のバックグラウンド操作を常に実行したいコードの場合は、独自のスレッドで起動することができます。ただし、スレッド化は難しいので、c# や .net を初めて使用する場合は、必要でない限りスレッド化を避けるようにします。

于 2012-11-13T08:26:48.787 に答える