以下是使用C#和WPF编写的一个基于事件机制的带界面的高级计算器程序的示例:

MainWindow.xaml:

<Window x:Class="Calculator.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Calculator" Height="300" Width="400">
    <Grid>
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBox x:Name="Num1TextBox" Width="150" Margin="0 0 0 10" />
            <TextBox x:Name="Num2TextBox" Width="150" Margin="0 0 0 10" />
            <Button Content="Add" Width="100" Margin="0 0 0 10" Click="AddButton_Click" />
            <Button Content="Subtract" Width="100" Margin="0 0 0 10" Click="SubtractButton_Click" />
            <Button Content="Multiply" Width="100" Margin="0 0 0 10" Click="MultiplyButton_Click" />
            <Button Content="Divide" Width="100" Click="DivideButton_Click" />
            <TextBlock x:Name="ResultTextBlock" Margin="0 20 0 0" FontWeight="Bold" />
        </StackPanel>
    </Grid>
</Window>

MainWindow.xaml.cs:

using System;
using System.Windows;

namespace Calculator
{
    public partial class MainWindow : Window
    {
        private Calculator calculator;

        public MainWindow()
        {
            InitializeComponent();

            calculator = new Calculator();
            calculator.CalculationPerformed += Calculator_CalculationPerformed;
        }

        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            double num1 = double.Parse(Num1TextBox.Text);
            double num2 = double.Parse(Num2TextBox.Text);
            calculator.Add(num1, num2);
        }

        private void SubtractButton_Click(object sender, RoutedEventArgs e)
        {
            double num1 = double.Parse(Num1TextBox.Text);
            double num2 = double.Parse(Num2TextBox.Text);
            calculator.Subtract(num1, num2);
        }

        private void MultiplyButton_Click(object sender, RoutedEventArgs e)
        {
            double num1 = double.Parse(Num1TextBox.Text);
            double num2 = double.Parse(Num2TextBox.Text);
            calculator.Multiply(num1, num2);
        }

        private void DivideButton_Click(object sender, RoutedEventArgs e)
        {
            double num1 = double.Parse(Num1TextBox.Text);
            double num2 = double.Parse(Num2TextBox.Text);
            calculator.Divide(num1, num2);
        }

        private void Calculator_CalculationPerformed(object sender, CalculatorEventArgs e)
        {
            ResultTextBlock.Text = 'Result: ' + e.Result;
        }
    }
}

在这个示例中,我们使用WPF创建了一个简单的界面,包含两个文本框用于输入数字,四个按钮用于执行加法、减法、乘法和除法操作,以及一个文本块用于显示计算结果。

在代码中,我们创建了一个Calculator实例,并订阅了CalculationPerformed事件。每个按钮的点击事件都会调用对应的计算方法,并传递输入的数字。

当计算完成后,CalculationPerformed事件将被触发,并在事件处理程序Calculator_CalculationPerformed中更新界面上的计算结果显示。

你可以根据需要对界面进行修改和美化,以及对计算器的功能进行扩展和改进。

C# WPF 事件机制高级计算器程序代码示例

原文地址: http://www.cveoy.top/t/topic/bBDu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录