

コンストラクタという呼び方であってるか分かりませんが、  
どのようにすれば出来ますでしょうか？  
よろしくお願いいたします。

[code]

    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 WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                MessageBox.Show("hello world");
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //ここでForm1_Loadを呼び出したい
            }
        }
    
    }
    
[/code]

Windows 10 64bit /Visual Studio for Desktop 2015


CC BY-SA 3.0
2017-05-05T09:41:49.700
34467
2018-11-22T14:01:45.320
2017-05-05T09:51:48.143
5750
12778
question
c#
loadコンストラクタ内容をbutton(別コンストラクタ)から呼び出すには？


`Form1_Load` **メソッド** 、あるいは`Form1.Load` **イベントハンドラー** を実行したい場合、以下のように記述します。

[code]

    private void button1_Click(object sender, EventArgs e)
    {
        Form1_Load(this, EventArgs.Empty);
    }
    
[/code]

これは`MessageBox.Show("hello
world")`と文法的には同等の行為になります。上の例では`sender`として`this`、`e`に`EventArgs.Empty`と「APIとして正しい」値を指定していますが、`Form1_Load`メソッドで引数の値は参照されていないので、実引数値は`null`などでも構いません。

なおイベントハンドラーはコード中から直接実行するためのものではありませんので、より適切な方法としては別の共通メソッドを定義して`Form1_Load`と`button1_Click`から参照します。

[code]

    private void Form1_Load(object sender, EventArgs e)
    {
        ShowHelloWorld();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        ShowHelloWorld();
    }
    private void ShowHelloWorld()
    {
        MessageBox.Show("hello world");
    }
    
[/code]


CC BY-SA 3.0
2017-05-05T09:50:36.880
34468
2017-05-05T09:59:17.320
2017-05-05T09:59:17.320
5750
5750
34467
answer