okr
okr

Reputation: 135

How can I call a method in a class from a WinForm?

I'm new to winforms and a beginner in c#. I created a simple application using else if. The user is to enter a value between 0 and 10 and press a button. If the number is between that range, a messagebox pops giving a message along with the number entered. But if the number is higher than 10, a messagebox pops saying "The number must be below 10". So far I got all this working but now I would like to have class handling the logic behind it but I don't know how to make the class1.cs and the Form1.cs to access each other's info. To my understanding, Class1.cs is to get the value entered from Form1, analyze it and return a value. Then Form1.cs is to take that returned value and display it -am I right?-. But i don't know how to do this.

What I'm asking here basically is if you could show me what do I have to put into my class1.cs so it will do the if/else logic within itself instead of doing it in Form1.cs (the way it's now).

Thank you guys !

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
    {

    }
}

Upvotes: 0

Views: 9315

Answers (3)

Kakashi
Kakashi

Reputation: 2195

you need pass "form1" instantiated to class1:

something like:

Class1 class1 = new Class1(this);

in class1:

namespace WindowsFormsApplication2 { 
  public class 1 { 
  private Form1 form1;

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

  public GetTxtMessage() {
     return form1.txtNumber.Text;
  }
 }
}

Upvotes: 0

Reza ArabQaeni
Reza ArabQaeni

Reputation: 4907

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;
    }
}

And:

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

Upvotes: 2

Nam Nguyen
Nam Nguyen

Reputation: 61

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

Upvotes: 0

Related Questions