Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中向GUI添加计算?_C#_Winforms_Textbox_Compiler Errors - Fatal编程技术网

如何在C#中向GUI添加计算?

如何在C#中向GUI添加计算?,c#,winforms,textbox,compiler-errors,C#,Winforms,Textbox,Compiler Errors,这是我第一次在Visual Studio上用C#使用Windows窗体。我试图使我的表格有一个按钮,当你点击“计算到期金额”时,它将把计算的内容放入“到期金额”字段。但是,每当我说“textBox3=aoorder.AmountDue()”时,它就表示无法将double转换为System.Windows.Forms.TextBox。我如何适当地转换它?这是我的程序代码 namespace MidTermPizzas { class pizzaOrder { public

这是我第一次在Visual Studio上用C#使用Windows窗体。我试图使我的表格有一个按钮,当你点击“计算到期金额”时,它将把计算的内容放入“到期金额”字段。但是,每当我说“textBox3=aoorder.AmountDue()”时,它就表示无法将double转换为System.Windows.Forms.TextBox。我如何适当地转换它?这是我的程序代码

namespace MidTermPizzas
{
   class pizzaOrder
   {
      public int numberOfCokes
      {
         get
         {
            throw new System.NotImplementedException();
         }
         set
         {
         }
      }

      public int numberOfPizzas
      {
         get
         {
            throw new System.NotImplementedException();
         }
         set
         {
         }
      }

      public double InputOrder()
      {
         const double COKE_PRICE = 1.49;
         const double PIZZA_PRICE = 7.99;
         double inputOrder = (numberOfCokes * COKE_PRICE) + (numberOfPizzas * PIZZA_PRICE);
         return InputOrder();
      }

      public double TaxDue()
      {
         const double TAX = .073;
         double taxDue = (this.InputOrder() * TAX);
         return TaxDue();
      }

      public double GetAmountDue()
      {
         double getAmountDue = this.InputOrder() + this.TaxDue();
         return GetAmountDue();
      }

      public double GetAmountPaid()
      {
         double getAmountPaid;
         return GetAmountPaid();
      }

      public double GetChargeDue()
      {
         double getChargeDue = this.GetAmountDue() - this.GetAmountPaid();
         return GetAmountPaid();
      }
   }
}

namespace MidTermPizzas
{
   public partial class Form1 : Form
   {
      pizzaOrder aOrder = new pizzaOrder();
      DailySummary aSummary = new DailySummary();

      public Form1()
      {
         InitializeComponent();
      }

      //click File, Exit
      private void exitToolStripMenuItem_Click(object sender, EventArgs e)
      {
         MessageBox.Show("Enjoy your pizza!");
         this.Close();
      }

      //click View, All Orders Placed
      private void allOrdersToolStripMenuItem_Click(object sender, EventArgs e)
      {
         AllOrdersPlaced myForm = new AllOrdersPlaced();
         myForm.Show();
      }

      //click View, Summary of Orders Placed
      private void summaryOfOrdersToolStripMenuItem_Click(object sender, EventArgs e)
      {
         SummaryOfOrdersPlaced myForm2 = new SummaryOfOrdersPlaced();
         myForm2.Show();
      }

      //text in box to the right of "Amount Due"
      private void textBox3_TextChanged_1(object sender, EventArgs e)
      {
         textBox3 = aOrder.GetAmountDue();
      }
   }
}     

textBox3
是对象。该对象具有各种方法(用于处理内容)和属性(用于保存内容),特别是
textBox3.Text
,您可以在其中设置框中的文本。记住,是你的朋友。

textBox3
是对象。该对象具有各种方法(用于处理内容)和属性(用于保存内容),特别是
textBox3.Text
,您可以在其中设置框中的文本。记住,他是你的朋友

textBox3.Text = Convert.ToString(aOrder.AmountDue());
假设AmountDue()返回一个Double

您遇到了两个问题,您试图将实际的textbox对象设置为字符串,而不是textbox的.Text属性,并且您没有将double转换为字符串

假设AmountDue()返回一个Double


您遇到了两个问题,您试图将实际的textbox对象设置为字符串而不是textbox的.Text属性,并且没有将double转换为字符串。

为了避免此错误,必须为Text属性指定值Order.GetAmountDue()。此属性包含TextBox的值:

textBox3.Text=aOrder.GetAmountDue()

因为有必要保持类型之间的兼容性,所以不能为
文本框
分配
双精度
,但可以将
双精度
分配给
字符串
(在本例中,
文本
属性是
字符串

可能需要设置值的格式,有关更多信息,请参阅此链接:

为避免此错误,有必要为Text属性分配值Order.GetAmountDue()。此属性包含TextBox的值:

textBox3.Text=aOrder.GetAmountDue()

因为有必要保持类型之间的兼容性,所以不能为
文本框
分配
双精度
,但可以将
双精度
分配给
字符串
(在本例中,
文本
属性是
字符串

可能需要设置值的格式,有关更多信息,请参阅此链接:

除了文本框问题,我也不认为您应该返回公共方法本身 而不是

 public double TaxDue()
        {
            const double TAX = .073;
            double taxDue = (this.InputOrder() * TAX);
            return TaxDue();
        }
你应该

 public double TaxDue()
        {
            const double TAX = .073;
            double taxDue = (this.InputOrder() * TAX);
            return taxDue;
        }

第一个实现没有意义。

除了文本框问题,我也不认为您应该返回public方法本身 而不是

 public double TaxDue()
        {
            const double TAX = .073;
            double taxDue = (this.InputOrder() * TAX);
            return TaxDue();
        }
你应该

 public double TaxDue()
        {
            const double TAX = .073;
            double taxDue = (this.InputOrder() * TAX);
            return taxDue;
        }

第一个实现没有意义。

“'System.Windows.Forms.TextBox'不包含'text'的定义,并且找不到接受'System.Windows.Forms.TextBox'类型的第一个参数的扩展方法'text'(是否缺少using指令或程序集引用?)“C#区分大小写,您必须使用“.text”不是“.text”。“System.Windows.Forms.TextBox”不包含“text”的定义,并且找不到接受“System.Windows.Forms.TextBox”类型的第一个参数的扩展方法“text”(是否缺少using指令或程序集引用?)“C#区分大小写,必须使用“.text”而不是“.text”。