【问题标题】:C# wpf textbox while [closed]C# wpf 文本框而 [关闭]
【发布时间】:2015-04-16 16:39:54
【问题描述】:

我正在编写一个 WPF 程序来确定制作一定数量的面包需要多少小时。

我需要用户输入

  • 他们想要制作的面包数量
  • 他们每小时可以制作面包的能力

它应该给出面包已经烘烤了多少小时以及该小时烘烤的容量的结果,因此对于容量为 50 的 130 块面包,结果将是

1-50
2-50
3-50

我相信问题出在我的 while 循环中,但我不确定问题出在哪里。 目前我没有得到想要的输出,虽然程序会编译。

private void btnStart_Click(object sender, RoutedEventArgs e)
{
    int Bread = 0;
    int Capacity = 0;
    int Time = 0;
    int InitialTime = 0;
    Bread = int.Parse(txtBread.Text);
    Time = int.Parse(txtTime.Text);
    InitialTime = int.Parse(txtInitialTime.Text);
    Capacity = int.Parse(txtCapacity.Text);

    while (Bread > 0)
    {
        if (Bread > Capacity)
        {
            Bread -= Capacity;
            txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity).ToString();
            InitialTime += Time;
            txtResult.Text = txtResult.Text + "\n" + (Bread - Capacity ).ToString(); 
        }

        else
        {
            Bread -= Capacity;
            txtResult.Text += Bread.ToString(); 
            InitialTime += Time;
        }
}

谢谢大家:)

【问题讨论】:

  • 绑定是你的朋友
  • 欢迎来到 Stack Overflow!不清楚你在这里问什么。查看 [如何提问](stackoverflow.com/help/how-to-ask)。
  • 谢谢 nate,但你能告诉我,这里有什么不清楚的地方,因为英语不是我的母语,也许我的词汇有错误
  • 还要查看这些数字 11-50 // 12-50 // 13-50。你有解释
  • Grant Winney 程序没有运行 :(,只是卡住了

标签: c# wpf loops while-loop


【解决方案1】:

好的,我知道你已经问过这个问题,我试图帮助你,但你的问题很难理解,我显然没有。

所以 while 循环看起来不错,但结果没有意义,因为我不知道你想要什么。

我将尝试将您的问题转化为我理解的内容,您向我们展示了结果应该是什么样子,而不是它们是什么。看起来您想要制作面包的小时数,以及该小时的容量

string printString = "";
int totalTime = 0;
int timeInterval = 1;
while (Bread > 0)
{
    if (Bread > Capacity)
    {
        Bread -= Capacity;
        totalTime += timeInterval;
        printString += string.Format("{0} - {1}\n", totalTime, Capacity);
    }

    else
    {
        Bread -= Capacity;
        totalTime += timeInterval;
        printString += string.Format("{0} - {1}", totalTime, Capacity);
        txtResult.text = printString;
    }
}

这将在面包大于0时运行While循环,如果面包仍然多于您可以制作的面包量,它将进入if语句 并且每次通过循环它都会从面包中取出容量并增加一个小时的时间。

在最后一次运行时,面包将小于容量,它将运行 else 语句,然后将 printString 放入结果文本框中,它会使面包小于 0 并结束循环。

如果这不是你想要的,那么你需要更清楚地知道你需要什么帮助。

我还想在上面的代码块中指出,我只写了我正在使用的变量,但你还没有声明,所以如果它们仍在代码中使用,请不要取出所有其他变量。

我做了一个完整的程序来看看你是否还有问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication7
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int bread = Convert.ToInt32(txtBread.Text);
        int capacity = Convert.ToInt32(txtCapacity.Text);
        string printString = "";
        int totalTime = 0;
        int timeInterval = 1;
        while (bread > 0)
        {
            if (bread > capacity)
            {
                bread -= capacity;
                totalTime += timeInterval;
                printString += string.Format("{0} - {1}\n", totalTime, capacity);
            }

            else
            {
                bread -= capacity;
                totalTime += timeInterval;
                printString += string.Format("{0} - {1}", totalTime, capacity);
                txtResult.Text = printString;
            }
        }
    }
}
}

XAML

<Window x:Class="WpfApplication7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="69,42,0,0" TextWrapping="Wrap" Name="txtBread" Text="" VerticalAlignment="Top" Width="120"/>
        <TextBox HorizontalAlignment="Left" Height="23" Margin="69,70,0,0" TextWrapping="Wrap" Name="txtCapacity" Text="" VerticalAlignment="Top" Width="120"/>
        <TextBox HorizontalAlignment="Left" Height="255" Margin="221,42,0,0" TextWrapping="Wrap" Name="txtResult" Text="" VerticalAlignment="Top" Width="177"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="114,98,0,0"     VerticalAlignment="Top" Width="75" Click="Button_Click"/>

    </Grid>
</Window>

【讨论】:

  • 感谢 Scriven,我之前确实问过这个问题,但我没有得到任何答案,所以我再次发布,我知道问题不是很清楚,但我是编程新手领域,非常感谢:)
  • 这对您有帮助吗,还是您还有什么不明白的地方?
  • 还有一个问题,为什么在我的代码中经过一些更正的代码后,现在点击按钮后,结果为零
  • 你会用完整的 .xaml.cs 代码编辑你的问题吗
  • 没关系,反正程序是我做的,有问题可以看我的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 2020-05-13
  • 1970-01-01
  • 2017-11-24
相关资源
最近更新 更多