在C#编写的计算其中加入一个窗口,使其显示之前的计算过程,并最多显示五条
时间: 2024-09-20 13:14:49 浏览: 17
在C#中创建一个带历史记录的科学计算器,你可以使用一个滚动列表框(ListBox)或者其他类似组件来跟踪并显示之前的计算。以下是一个简单的示例:
```csharp
using System;
using System.Collections.Generic;
using System.Windows.Forms;
public partial class CalculatorWithHistory : Form
{
List<string> HistoryItems = new List<string>();
int MaxHistory = 5;
public CalculatorWithHistory()
{
InitializeComponent();
// 创建历史显示区域
listBoxHistory.Items.AddRange(HistoryItems.Take(MaxHistory));
}
private void btnAdd_Click(object sender, EventArgs e)
{
string input = $"{sender.Text} +";
PerformCalculation(input);
SaveToHistory(input);
}
// 添加其他数字和运算符按钮的点击事件,类似上面的btnAdd_Click
private void btnEqual_Click(object sender, EventArgs e)
{
string currentInput = $"{textBoxDisplay.Text}";
string result = PerformCalculation(currentInput);
// 渲染结果显示到文本框
textBoxDisplay.Text = result;
// 保存到历史并更新历史显示
SaveToHistory(result);
}
private string PerformCalculation(string input)
{
// 这里进行计算的逻辑,例如:
return Calculate(input); // 假设Calculate()是你自定义的一个计算方法
}
private void SaveToHistory(string calculationResult)
{
if (HistoryItems.Count >= MaxHistory)
HistoryItems.RemoveAt(0); // 移除最旧的历史项
HistoryItems.Add(calculationResult);
listBoxHistory.Items.AddRange(HistoryItems.Take(MaxHistory)); // 更新历史显示
}
}
```
在这个例子中,每次执行计算后,都会将当前的操作和结果添加到 `HistoryItems` 列表中,并只保留最近的五个历史项。历史显示在 `listBoxHistory` 上,当用户清空显示区或点击 "clear" 按钮时,历史记录会被移除。