从文本框中获取输入数据并发送到计算类?

时间:2017-07-18 03:44:07

标签: c# winforms oop

所以,我想在文本框中添加数字

enter image description here

我希望将号码发送到此课程

public class ParticleSwarm
{

    private double Fitness;
    MatchedPart matchedParticle = new MatchedPart();
    public List<MatchedPart> m_listMatchedPartItem = new List<MatchedPart>();
    public List<MatchedPart> MatchedPartList
    {
        get
        {
            return m_listMatchedPartItem;
        }
    }
    public ParticleSwarm(double fitness)
    {           
        Fitness = fitness;
        Calculate();
        m_listMatchedPartItem.Add(matchedParticle);
    }        
    // Get data to winform

    public void Calculate()
    {

        int dim = 2; // problem dimensions 2
        int numParticles = 2; //2
        int maxEpochs = 100; //100
        double exitError = 0.0; // exit early if reach this error 0
        double minX = -10.0; // problem-dependent -10
        double maxX = 10.0; //10

如何将文本框中的数字替换为Calculate()dim,numParticles .. 。 ?

2 个答案:

答案 0 :(得分:1)

你显然需要有函数参数。如果我正确理解了您的问题,您希望将维度粒子传递给Calculate()函数。

首先,在 ParticleSwarm 类中,您应该更改函数的原型,如下所示

 public void Calculate(int dimen,int numParts)

当你想要调用方法时,就像下面这样做

int dimen = int.Parse(textbox.Text);
int parts = int.Parse(textbox2.Text);
ParticleSwarm p = new ParticleSwarm();
p.Calculate(dimen,parts);

你的Calculate()函数看起来像这样

public void Calculate(int dimen,int numParts)
    {

        int dim = dimen; 
        int numParticles = numParts; 
        int maxEpochs = 100; //100

虽然我不确定这是你想要的!此外,Here是关于C#函数和参数传递的基础知识的链接,如果您需要它!

更新2

根据您的需要,应该将构造函数修改为如下所示

public ParticleSwarm(double fitness,int dimen,int numParts)
    {           
        Fitness = fitness;
        Calculate(dimen,numParts);
        m_listMatchedPartItem.Add(matchedParticle);
    }     

并像这样调用构造函数

 int dimen = int.Parse(textbox.Text);
    int parts = int.Parse(textbox2.Text);
    ParticleSwarm p = new ParticleSwarm(fitness,dimen,parts);

答案 1 :(得分:0)

您可以在按钮单击时调用Calculate()方法,您可以在Calculate()方法中获取文本框值,或者您可以将参数添加到Calculate(param 1,param 2)方法并从提取中发送参数值使用以下代码从文本框中输入值:

int value = Convert.ToInt32(txtboxName.Text);

OR

double value = Convert.ToDouble(txtBoxName.Text);