私の課題は、listBox に 100 個の乱数を表示することから始まりました。これはうまくいきます。次に、StreamWriter と StreamReader を使用して、結果を 2 番目の listBox に書き込んで読み戻します。ここで、いくつかのことが起こっています。100 行のそれぞれには ... System.Windows.Forms.ListBox.Items.Countというプレフィックスが付けられます。
そのようなフレーズを Google で検索しようとすると、表示されるのは MSDN ライブラリの labrynth だけであり、これに該当するものは何も見つかりませんでした。http://www.dotnetperls.com/listboxを紹介され ましたが、解決策も見つかりませんでした。また、読み戻された 100 エントリのそれぞれは最初のランダムにすぎず、100 すべてではありません。それは別の問題であることはわかっています。それは the_System.Windows.Forms.. の部分です。最初に修正する必要があります。
今日はこれに集中するために仕事を休みました。時間は飛んでいて、私はどこにも行きません。私は自分の教科書を分析し、狂ったように Google で検索しましたが、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