【问题标题】:Get Input data from text box and send to calculate class?从文本框中获取输入数据并发送到计算类?
【发布时间】:2017-07-18 03:44:07
【问题描述】:

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

我想给这个班级发号码

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 .. 。 . ?

【问题讨论】:

  • 您应该获取您的文本框名称并使用int.Parse/int.TryParsedouble.Parse/double.TryParse 转换它们的.Text 属性
  • 计算方法应改为接受参数dimnumparticles。从Form 开始,您首先需要使用int.Parseint.TryParse 将textbox.text 转换为整数,然后通过将这些值传递给它来调用Calculate 方法。

标签: c# winforms oop


【解决方案1】:

您显然需要为函数提供参数。如果我正确理解了您的问题,您希望将 DimensionParticles 传递给 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);

【讨论】:

  • 是的,这就是我想要的。但我对 ParticleSwarm() 有疑问。当我调用 ParticleSwarm() 时。我在方法内部调用Calculate()。它看不到 Calculate(int dimen,int numParts); {
  • 你能告诉我你想如何以及在哪里调用Calculate()吗?
  • public ParticleSwarm(double Fitness) { Fitness = Fitness;计算(); m_listMatchedPartItem.Add(matchedParticle); }
  • @MacN。更新答案
【解决方案2】:

您可以在单击按钮时调用 Calculate() 方法,并且可以在 Calculate() 方法中获取文本框值,也可以将参数添加到 Calculate(param 1, param 2) 方法中,然后通过获取使用以下代码从文本框中获取值:

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

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

【讨论】:

  • 这部分我已经知道了。但是如何调用Calculate() 方法。我这样叫。私人粒子群 p; p.Calculate();
  • 表单中有按钮吗?如果是,那么您可以在按钮单击事件上调用 Calculate() 方法。
  • 你可以使用 ParticleSwarm objParticleSwarm = new ParticleSwarm();然后你可以调用 objParticleSwarm.Calculate() 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 2022-01-27
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多