从另一个类获取TextBox值

时间:2016-06-27 08:29:15

标签: c# winforms

经过5个多小时的搜索和尝试后仍然没有解决方案...... 我有2个类(我们称之为Form1和Form2)。表单1有两个带有值和一个按钮的TextBox。当我触发此按钮时,将打开Form2并使用在Form1的TextBox中写入的值计算某些内容。

这是我的代码(如果你需要的话):

Form1中:

namespace Darlehensrechner
{
/// <summary>
/// Interaction logic for Annuitätendarlehen.xaml
/// </summary>
public partial class Annuitätendarlehen : Window
{

    public Annuitätendarlehen()
    {
        InitializeComponent();
    }

    public void berechnen2_Click(object sender, RoutedEventArgs e)
    {
        double zins = 0.03;
        double ZwErg1 = 0;
        double ZwErg2 = 0;
        double ZwErg3 = 0;
        double gSumme = 0;

        int monate;
        monate = Convert.ToInt32(monate2.Text);
        monate = int.Parse(monate2.Text);

        int betrag;
        betrag = Convert.ToInt32(betrag2);
        betrag = int.Parse(betrag2.Text);

        Annuitätenrechner annuitätenrechner = new Annuitätenrechner();
        //AnRe.AnRechner();
    }
}
}

窗体2:

namespace Darlehensrechner
{
class Annuitätenrechner : Annuitätendarlehen
{
     Annuitätendarlehen annuitätendarlehen = new Annuitätendarlehen();

    public void AnRechner(int monate, int betrag)
    {
        double zins = 0.03;
        double ZwErg1 = 0;
        double ZwErg2 = 0;
        double ZwErg3 = 0;
        double gSumme = 0;


        ZwErg1 = Math.Pow((1 + zins), monate * zins); //(1 + zins)^monate * zins / (1 + zins) ^ monate - 1;
        ZwErg2 = Math.Pow((1 + zins), monate - 1);
        ZwErg3 = ZwErg1 / ZwErg2;
        gSumme = ZwErg3 * betrag;

        rechnung2.Text = ZwErg1 + "   = Part 1: (1 + zins^monate * zins)" + Environment.NewLine +
            ZwErg2 + "   = Part 2: (1 + zins) ^ monate - 1" + Environment.NewLine +
            ZwErg3 + "   = Part 1 - Part 2";

        summeAn.Content = gSumme.ToString("0.00");
    }
}
}

2 个答案:

答案 0 :(得分:1)

那么,问题出在哪里?

//int monate; 
int monate = Convert.ToInt32(monate2.Text);
//monate = int.Parse(monate2.Text); //you do not need this because the code above do the same

//int betrag;
int betrag = Convert.ToInt32(betrag2.Text);
//betrag = int.Parse(betrag2.Text); //you do not need this because the code above do the same

Annuitätenrechner annuitätenrechner = new Annuitätenrechner();
// after creating instance just to call method and pass parameters
annuitätenrechner.AnRechner(monate, betrag);

在基类中使用派生类的方法是一个糟糕的设计。 你不需要这一行

Annuitätendarlehen annuitätendarlehen = new Annuitätendarlehen();
<{1>}类

中的

答案 1 :(得分:0)

form1中的

创建两个静态变量:

public static int Value1;
public static int value2;
点击按钮

 value1=convert.toint32(textbox1.Text);
 value2=convert.toint32(textbox2.Text);

并显示form2

Form2 obj = new Form2();
obj.show();

并在表单2中加载事件计算您的值。

int Sum=Form1.Value1+Form1.value2

MessageBox.Show(Sum.ToString());