我的任务从在列表框中显示 100 个随机数开始。这工作正常。接下来,我们使用 StreamWriter 和 StreamReader 将结果写入和读回第二个列表框。在这里,有几件事正在发生。100 行中的每一行都以 ... System.Windows.Forms.ListBox.Items.Count为前缀。
如果你尝试用谷歌搜索这样的短语,MSDN library labrynth 就是所有显示的内容,我没有发现任何适用于此的内容。我被提到 http://www.dotnetperls.com/listbox,但也没有找到解决方案。此外,回读的 100 个条目中的每一个都只是第一个 Random,而不是全部 100 个。我知道这是一个单独的问题。这是_System.Windows.Forms .. 我需要先修复的部分。
我今天请假专心做这件事。时间飞逝,我无处可去。我剖析了我的教科书,疯狂地用谷歌搜索,并在 FaceBook 上发现了一个 .NET 用户组,这也无济于事。..我不知道还能去哪里。
到目前为止,我的代码如下...
/* Matthew A. May June 17th. & 22nd POS/409
* This application simulates the roll of dice 100 times. The output is displayed in
* the listBox. The Results can be saved (written) to a text file. This txtFile can
* then be read back and redisplayed. ** Some code is derived from...
* Gaddis, T. (2012). Starting out with Visual C#® 2010 (2nd ed.). Boston, MA: Addison-Wesley.....
* Page #s' are referenced accordingly throughout where applicable. *
* */
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;
using System.IO; //required for the StreamWrite & StreamReader classes for txtFile functions.
namespace WindowsFormsApplication1
{
public partial class Main : Form
{
private int diceSide1; // private accessor
private int diceSide2; // Field Variable Declarations.
private int SUM; // SUM = diceSide1 + diceSide2
const int Roll_MAX = 100;
public Main()
{
InitializeComponent();
}
private void groupBox2_Enter(object sender, EventArgs e)
{
//GroupBox...
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnWrite_Click(object sender, EventArgs e)
{
/* When the user clicks a Write button, the program will write the sum of the dice for each roll into a sequential data file.
the SUM is an int= dye1 + dye 2. SUM cannot be a constant since its' value wil change with each roll.
*/
}
private void btnRollEm(object sender, EventArgs e)
{
Random rand = new Random(); //creates new object from Random Class. Gaddis, T. (2012)Chptr5Pg321.
for (int lineNum = 1; lineNum <= Roll_MAX; lineNum++)
{
diceSide1 = rand.Next(6) + 1;
diceSide2 = rand.Next(6) + 1;
SUM = diceSide1 + diceSide2;
lstBoxOut.Items.Add ("On roll , " + lineNum + " ,You rolled a " + diceSide1 + " and a " + diceSide2 + " for a sum of " + SUM);
} //end For-Loop. At this point, output is exactly as expected.
} //End btnRollEm
private void btnWriteToFile(object sender, EventArgs e)
{
StreamWriter rollLog; //create StreamWriter object reference Variable.
rollLog = File.CreateText("Roll Results.txt"); //creating the File.
for (int count = 1; count <= 100; count++)
{
rollLog.WriteLine(lstBoxOut);
//changing (lstBoxOut) to (count) shows 1-100 vertically.
//Example Pg.298 & 301, showing where to write to.
} //End Write ForLoop
rollLog.Close(); //close file after creation.
MessageBox.Show ("Your results have been successfully Saved to File.");
} //reviewing the txtFile, only the 1st line is written 100 times.
private void btnReadFile(object sender, EventArgs e)
{
//btnRead From File. Hides Main Form, Shows 2nd Form for txtFile OutPut.
Form2 form2 = new Form2();
form2.Show(); //Show // StreamReader. Read txt File.
//// Declare a StreamReader variable.
//StreamReader rollResults;
//// Open the file and get a StreamReader object.
//rollResults = File.OpenText("Roll Results.txt");
}
private void lstBoxOut_SelectedIndexChanged_1(object sender, EventArgs e)
{
}
private void btnClear(object sender, EventArgs e)
{
lstBoxOut.Items.Clear(); //doesn't work.
}
private void btnExit(object sender, EventArgs e)
{
this.Close(); // Close the form.
}
} //End Class Declaration
} //End NameSpace Declaration