Как я могу вызвать метод в классе из WinForm? - PullRequest
0 голосов
/ 15 ноября 2011

Я новичок в winforms и новичок в c #.Я создал простое приложение, используя else if.Пользователь должен ввести значение от 0 до 10 и нажать кнопку.Если число находится в этом диапазоне, появляется окно сообщения с сообщением вместе с введенным номером.Но если число больше 10, появляется сообщение «Число должно быть меньше 10».До сих пор все это работало, но теперь я хотел бы, чтобы класс обрабатывал логику, но я не знаю, как заставить class1.cs и Form1.cs получить доступ друг к другу.Насколько я понимаю, Class1.cs должен получить значение, введенное из формы Form1, проанализировать его и вернуть значение.Затем Form1.cs должен взять это возвращенное значение и отобразить его - я прав? -.Но я не знаю, как это сделать.

Здесь я в основном спрашиваю, можете ли вы показать мне, что я должен добавить в свой 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
    {

    }
}

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011
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 голосов
/ 15 ноября 2011

вам нужно передать экземпляр "form1" в class1:

что-то вроде:

Class1 class1 = new Class1(this);

в классе 1:

namespace WindowsFormsApplication2 { 
  public class 1 { 
  private Form1 form1;

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

  public GetTxtMessage() {
     return form1.txtNumber.Text;
  }
 }
}
0 голосов
/ 15 ноября 2011
private void label1_Click(object sender, EventArgs e)
{
        Class1 cls = new Class1();
        // cls.methodName(parameters);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...