2011-11-15 35 views
0

我是新來winforms和初學者在C#中。我使用else創建了一個簡單的應用程序。用戶輸入一個介於0和10之間的值並按下一個按鈕。如果數字在該範圍之間,則會彈出一個消息框,提示消息以及輸入的數字。但是,如果數字高於10,則會彈出一個消息框,提示「該數字必須低於10」。到目前爲止,我得到了所有這些工作,但現在我想讓類處理它背後的邏輯,但我不知道如何使class1.cs和Form1.cs訪問彼此的信息。據我的理解,Class1.cs是從Form1輸入值,分析它並返回一個值。然後Form1.cs將採取返回的值並顯示它 - 我對嗎? - 。但我不知道該怎麼做。如何從WinForm中調用類中的方法?

什麼我基本上詢問這裏,如果你能告訴我該怎麼做我必須把我的的Class1.cs所以它會做的if/else邏輯中本身,而不是在Form1.cs做的(現在的方式)。

謝謝你們!

Form1.cs的

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

namespace WindowsFormsApplication2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void label1_Click(object sender, EventArgs e) 
     { 

     } 

     private void btnDone_Click(object sender, EventArgs e) 
     { 

      double number = Convert.ToDouble(txtNumber.Text); 

      if (number > 10) 
      { 
       MessageBox.Show("Number must be below 10"); 

      } 
      else { 
       MessageBox.Show("Good ! You entered : " + number); 
      } 
     } 
    } 
} 

的Class1.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace WindowsFormsApplication2 
{ 
    class Class1 
    { 

    } 
} 

回答

2
public static class Class1 
{ 
    public static string GetIsValidNumberMessgae(string text) 
    { 
     string message; 
     int number; 
     if(int.TryParse(text,out number)) 
     { 
      if (number > 10) 
       message="Number must be below 10"; 
      else 
       message="Good ! You entered : " + number; 
     } 
     else 
      message="Not valid number"; 
     return message; 
    } 
} 

和:

private void btnDone_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show(Class1.GetIsValidNumberMessgae(txtNumber.Text)); 
    } 
+0

在Form1.cs上,我在messagebox.show行得到了一個錯誤:'非靜態字段,方法或屬性需要對象引用。我該如何解決這個問題。謝謝 – okr

+1

修改:公共靜態字符串GetIsValidNumberMessgae(字符串文本) –

+0

它的工作原理,謝謝 – okr

0
private void label1_Click(object sender, EventArgs e) 
{ 
     Class1 cls = new Class1(); 
     // cls.methodName(parameters); 
} 
+0

嗨,這個創建類的新實例,我明白那一部分。但是,如何在我的課程中設置邏輯以使用Form1.cs。能給我看看麼?謝謝 – okr

0

你需要通過實例化到Class 「form1的」:

類似:

Class1 class1 = new Class1(this); 
Class1中

namespace WindowsFormsApplication2 { 
    public class 1 { 
    private Form1 form1; 

    public Class1(Form1 Form1) { 
     form1 = Form1; 
    } 

    public GetTxtMessage() { 
    return form1.txtNumber.Text; 
    } 
} 
} 
相關問題