从另一个类获取TextBox值

本文关键字:TextBox 获取 另一个 | 更新日期: 2023-09-27 17:49:27

经过5个多小时的搜索和尝试,仍然没有解决方案…我有两个类(我们叫它们Form1和Form2)。表单1有两个带值的文本框和一个按钮。当我触发这个按钮时,Form2将被打开,并使用Form1的文本框中写的值计算一些东西。

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

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

Form2:

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

从另一个类获取TextBox值

那么,问题在哪里呢?

//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();

Annuitätenrechner

在form1中创建两个静态变量

public static int Value1;
public static int value2;

on button click:

 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());