2017-04-15 9 views
0

私はC#の初心者です。基本的なものが必要です。ボタンクリックからメソッドを呼び出そうとしていて、Program.csまたはForm1.csでオブジェクトとメソッドを宣言するかどうかわかりません。c#Windowsフォームアプリケーションでメソッドを使用するにはどうすればよいですか?

ここまではこれまでのことです。

public partial class frmMain : Form 
{ 
    Form form = new Form(); 

    public frmMain() 
    { 
     InitializeComponent(); 
    } 

    private void btnCalc_Click(object sender, EventArgs e) 
    { 
     txtC.Text = form.CalcHypotenuse(double.Parse(txtA.Text), double.Parse(txtB.Text)); 
    } 

} 

public string CalcHypotenuse(double sideA, double sideB) 
{ 
    double hypotenuse = Math.Sqrt((sideA * sideA) + (sideB * sideB)); 
    string hypotenuseString = hypotenuse.ToString(); 
    return hypotenuseString; 
} 
+0

これはエラーを意味しますか? – Sami

+0

あります。「名前空間にフィールドやメソッドなどのメンバーを直接入れることはできません」と「フォーム」には「CalcHypotenuse」の定義が含まれていません。 –

答えて

1

メソッドはクラス内にある必要があります。あなたのフォームはクラスなので、その中にメソッドを置くだけで呼び出すことができます。私がfrmMainクラスの中にメソッドを移動し、あなたがそれを必要としないので、Form form = new Form();行を削除したことに注意してください。

フォーム内からのみメソッドを呼び出す場合は、非公開にして外部から呼び出すことはできません。

+0

ありがとうございました。私は 'this'を使用する必要があるか分からなかった –

+0

あなたは 'this'を使う必要はなく、私はそのコメントに言及します。私はいつもそれを使用しますが、それは私の個人的な好みです。あなたの質問に答えた場合は[this](http://stackoverflow.com/help/someone-answers)をお読みください – CodingYoshi

関連する問題