0

单击按钮时,我需要获取数组的内容并将它们放到消息框中。当用户点击添加按钮时,数字被加载到数组中,并且它可以很好地执行其他功能。但是,当点击显示按钮时,它会弹出一个消息框,但它只是显示为 0。下面是代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Testscores.UI
{
    public partial class frmTestscores : Form
    {
        //creates the variables needed for the calculations
        int scores;
        double total = 0;
        int count = 0;
        int counts = 0;
        double average = 0;
        int[] sArray;


        public frmTestscores()
        {
            InitializeComponent();
        }
        //creates the exit button click event
        private void btnExit_Click(object sender, EventArgs e)
        {
            //exits the application
            Application.Exit();
        }
        //creates the clear button click event
        private void btnClear_Click(object sender, EventArgs e)
        {
            //clears all text fields and variables
            txtAverage.Text = "";
            txtCount.Text = "";
            txtScore.Text = "";
            txtTotal.Text = "";
            scores = 0;
            total = 0;
            counts = 0;
            average = 0;

        }
        //creates the add button click event
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //creates the try and catch statements
            try
            {
                //does the calculations and outputs it into the text fields
                scores = int.Parse(txtScore.Text);

                counts += 1;
                total = total + scores;

                average = total / counts;
                    txtAverage.Text = average.ToString();
                    txtTotal.Text = total.ToString();
                txtCount.Text = counts.ToString();
                //initializes the array(this is where i get confused)
                int SIZE = counts;
                Array.Resize(ref sArray, SIZE);
                for (int count = 1; count > SIZE; count++)
                {

                   sArray[count] = scores;
                    //outputs the count to the text box
                    txtCount.Text = count.ToString();




                }
            }
                //catch statement
            catch (Exception ex)
            {
                //outsputs a message to the user
                MessageBox.Show("Please enter a valid number,");

            }
        }
        //creates the display button click event
        private void btnDisplay_Click(object sender, EventArgs e)
        {
            //supposed to output the array to a message box
            MessageBox.Show(sArray[].ToString());

        }
    }
}
4

3 回答 3

5

您可以将数组中的单个字符串组合成单个字符串(例如使用 string.Join 方法),然后显示连接的字符串:

string toDisplay = string.Join(Environment.NewLine, sArray); 
MessageBox.Show(toDisplay);
于 2012-09-20T20:43:13.293 回答
0

将您的显示点击事件处理程序更改为:

private void btnDisplay_Click(object sender, EventArgs e)
{
    string output = string.Empty;
    foreach (var item in sArray)
    {
        output += item + " ";
    }

    //supposed to output the array to a message box
    MessageBox.Show(output);
}
于 2012-09-20T20:44:19.800 回答
0

是的,这不会输出整个数组。阅读有关 ToString() 的文档。它通常输出对象的类型名,除非它在子类中被覆盖。

这样做的蛮力很简单:

string output = new string();

for(int i = 0; i < sArray.Length; i++)
{
   output += sArray[i] // plus any delimiters or formating.
}

MessageBox.Show(output);
于 2012-09-20T20:44:38.690 回答