在文本框中添加方程式。

已加入
2020年11月8日
留言内容
7
编程经验
Beginner
大家晚上好

首先,在此先感谢您抽出宝贵的时间阅读我的要求。我真的在为以下问题而苦苦挣扎。

我已经使用c#创建了一个Windows窗体。该表格由许多文本框组成,我的用户将在其中插入数字。例如:-200、100等。
TextBox9是总计列。我需要取TextBox1的值并做一个方程,答案在TextBox9中。例如,用户将-200放入TextBox1中,而我想执行-200(/ 1000 * 3.18141 * 2.3)* 1.19,答案在Textbox9中。
在VBA中,它是如此简单,但这似乎在挑战我的技能。

非常感谢你的帮助。

最好的祝福,
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,528
地点
弗吉尼亚州切萨皮克
编程经验
10+
向我们显示您当前的代码。如果看不到您的代码,我们无法为您提供建议。

您将执行与VBA中相同的操作:从textbox1中获取值,解析为数值,计算输出值,将输出值转换为字符串,然后最终将该字符串存储在textbox9中。
 
已加入
2020年11月8日
留言内容
7
编程经验
Beginner
向我们显示您当前的代码。如果看不到您的代码,我们无法为您提供建议。

您将执行与VBA中相同的操作:从textbox1中获取值,解析为数值,计算输出值,将输出值转换为字符串,然后最终将该字符串存储在textbox9中。
嗨跳伞者,谢谢您回复我。对于未提供代码的歉意,我在下面做了。大声笑,你听起来很简单,但是对我来说,我似乎做不到。
只是要确认,textBox8需要具有textBox5的值\(1000 * 3.18141 * 2.3)* 1.19

一如既往,我感谢您的时间和专业知识。

最好的祝福,

C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
using System.Runtime.ExceptionServices;

namespace Navigations_delivery_report
{
    public partial class Form1 : Form
    {
        Excel.Application xlap = new Excel.Application();
        public Form1()
        {
            InitializeComponent();
            textBox1.Text = Environment.UserName;
        }
        private void label1_Click(object sender, EventArgs e)
        {

        }
        private void label5_Click(object sender, EventArgs e)
        {   }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {  }

        private void button1_Click(object sender, EventArgs e)

        {
            string result = "Please Enter ";
            
            if (textBox1.Text == string.Empty)
            {
                result += " Name,";
            }
            
            if (textBox2.Text == string.Empty)
            {
                result += " CallSign,";
            }
            
            if (textBox3.Text == string.Empty)
            {
                result += " Departure,";
            }
            
            if (textBox4.Text == string.Empty)
            {
                result += " Arrival,";
            }

            if (textBox5.Text == string.Empty)
            {
                result += " Fuel,";
            }

            if (textBox6.Text == string.Empty)
            {
                result += " Cost,";
            }

            if (textBox7.Text == string.Empty)
            {
                result += " Time,";
            }

            if (comboBox1.SelectedItem == null)
            {
                result += " Type Of Route,";
            }

            if (comboBox2.SelectedItem == null)
            {
                result += " Route Method,";
            }

            if (checkBox1.Checked == false)
            {
                result += " Confirm OFP Matches ATC Plan,";
            }
            else
            {
                if (result.Contains(','))
                {
                    result = result.Remove(result.LastIndexOf(','));
                }
            }
            
            if (result != "Please Enter ")
            {
                MessageBox.Show(result);
            }
            else
            {
                Excel.Workbook xlworkbook;
                Excel.Worksheet xlworksheet;
                
                object misValue = System.Reflection.Missing.Value;
                
                xlworkbook = xlap.Workbooks.Add(misValue);
                xlworksheet = (Excel.Worksheet)xlworkbook.Worksheets.get_Item(1);
                
                xlworksheet.Cells[1, 1] = textBox1.Text;
                xlworksheet.Cells[1, 2] = dateTimePicker1.Value;
                xlworksheet.Cells[1, 3] = textBox2.Text;
                xlworksheet.Cells[1, 4] = textBox3.Text;
                xlworksheet.Cells[1, 5] = textBox4.Text;
                xlworksheet.Cells[1, 6] = textBox5.Text;
                xlworksheet.Cells[1, 7] = textBox6.Text;
                xlworksheet.Cells[1, 8] = textBox7.Text;
                xlworksheet.Cells[1, 9] = textBox8.Text;
                xlworksheet.Cells[1, 10] = textBox9.Text;
                xlworksheet.Cells[1, 11] = comboBox1.Text;
                xlworksheet.Cells[1, 12] = comboBox2.Text;

                xlworkbook.SaveAs(@"C:\demo\savings_" + DateTime.Now.ToString("yyyyMMdd_hmmss") + ".csv");
                xlworkbook.Close(true);
                xlap.Quit();

                textBox2.Clear();
                textBox3.Clear();
                textBox4.Clear();
                textBox5.Clear();
                textBox6.Clear();
                textBox7.Clear();
                comboBox1.SelectedIndex = -1;
                comboBox2.SelectedIndex = -1;
                checkBox1.Checked = false;
                textBox2.Focus();
            }
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Close();
        }

        public void Button3_Click(object sender, EventArgs e)
        {
            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
            textBox5.Clear();
            textBox6.Clear();
            textBox7.Clear();
            comboBox1.SelectedIndex = -1;
            comboBox2.SelectedIndex = -1;
            checkBox1.Checked = false;
            textBox2.Focus();
        }

        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            dateTimePicker1.CustomFormat = "yyyy-mm-dd";
        }

        private void textBox8_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox9_TextChanged(object sender, EventArgs e)
        {


        }

        private void button4_Click(object sender, EventArgs e)
        {


        }

        private void textBox6_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox5_TextChanged(object sender, EventArgs e)
        {

        }
    }
}
 
由主持人最后编辑:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,523
地点
悉尼,澳大利亚
编程经验
10+
请避免随意进行代码转储。仅发布相关代码。您那里有许多空方法,因此我们显然不需要查看它们。我们也不需要看所有其余的代码。仅与眼前的问题特别相关。如果您不知道什么是相关的,那么您还没有真正考虑到该问题。
 
已加入
2020年11月8日
留言内容
7
编程经验
Beginner
请避免随意进行代码转储。仅发布相关代码。您那里有许多空方法,因此我们显然不需要查看它们。我们也不需要看所有其余的代码。仅与眼前的问题特别相关。如果您不知道什么是相关的,那么您还没有真正考虑到该问题。
你好,

感谢您的提示,从现在开始,我将确保仅发布相关信息。话虽如此,我知道问题出在哪里,我只是觉得很难解决。
最好的祝福
 
已加入
2020年11月8日
留言内容
7
编程经验
Beginner
您认为是什么问题?
嗨跳伞者,

我的代码在这里工作,但仅在MessageBox中。我不知道如何编码,因此当用户在Textbox 5中输入数字时,它将在TextBox8中填充。
我在这里创建了一个变量,但是textBox8.Text(answer.ToString());不起作用。
现在就差不多了。

太感谢了...
 

附件

  • 1604944135071.png
    1604944135071.png
    9.8 KB · Views: 3

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,528
地点
弗吉尼亚州切萨皮克
编程经验
10+
以后,请以代码标签中的文本形式而不是屏幕截图形式发布代码。屏幕截图很难在手机等小屏幕设备上阅读。
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,528
地点
弗吉尼亚州切萨皮克
编程经验
10+
无论如何,您将值分配给TextBox的Text属性。您将获得的错误将告诉您Text是属性,而不是方法,因此您不能尝试通过像方法一样调用它来设置值。

一旁。为什么在上面的某些代码中使用Excel对象模型?尽管您的特定问题是关于如何计算值并显示它的,但是在看到某些对象模型代码后,我无法动摇您正在艰难地处理事情的感觉。您的代码的更大目标是什么?
 
已加入
2020年11月8日
留言内容
7
编程经验
Beginner
无论如何,您将值分配给TextBox的Text属性。您将获得的错误将告诉您Text是属性,而不是方法,因此您不能尝试通过像方法一样调用它来设置值。

一旁。为什么在上面的某些代码中使用Excel对象模型?尽管您的特定问题是关于如何计算值并显示它的,但是在看到某些对象模型代码后,我无法动摇您正在艰难地处理事情的感觉。您的代码的更大目标是什么?
嘿,

谢谢您回复我。这是我第一次尝试使用C#,大部分代码来自创建项目后的标准设置。因此,非常欢迎您提供任何意见或反馈。
通过执行以下操作,我实际上已经设法解决了我遇到的问题。
但是,如果用户输入一个负值(例如-200),它将无法读取,因此可以按要求工作。我猜是double或int不允许字符。这是我的下一个障碍,如果您能简单地解释一下?
如果您对我的工作感兴趣,我在航空业工作,此计算方式是每千克燃料的碳抵消费用,以欧元为单位。

再次感谢您的帮助。
double firstbox;
double answer;

firstbox = double.Parse(textBox5.Text);
答案= firstbox / 1000 * 3.18141 * 2.3 * 1.19;


textBox8.Text =(answer.ToString());
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,528
地点
弗吉尼亚州切萨皮克
编程经验
10+
用于int和double的Parse()应该能够处理负数。

到底是什么意思"it does not read it"?

你有例外吗?如果是这样,它怎么说?
 
最佳 底部