G
Guest
I want to read a line from the textbox just like a console window. The
called thread will not allow me to enter keys when I call Join. I have stuck
on this problem for 2 weeks:
private void button3_Click(object sender, EventArgs e)
{ ReadLine(); }
public string ReadLine()
{
Thread w1 = new Thread(new ThreadStart(ReadLineFunct));
w1.Start();
w1.Join();
return R_str; // field
}
void ReadLineFunct()
{
mre = new ManualResetEvent(false);
B_reading = true;
mre.WaitOne();
Debug.WriteLine("gotten in RL:" + R_str);
}
private void b_textbox_KeyDown(object sender, KeyEventArgs e)
{
if (B_reading)
{
if (e.KeyCode == Keys.Enter)
{
B_reading = false;
mre.Set();
}
else
{
string key = e.KeyCode.ToString();
if (key.Length == 1 || e.KeyCode == Keys.Space )
B_str += e.KeyCode.ToString();
}
}
}
called thread will not allow me to enter keys when I call Join. I have stuck
on this problem for 2 weeks:
private void button3_Click(object sender, EventArgs e)
{ ReadLine(); }
public string ReadLine()
{
Thread w1 = new Thread(new ThreadStart(ReadLineFunct));
w1.Start();
w1.Join();
return R_str; // field
}
void ReadLineFunct()
{
mre = new ManualResetEvent(false);
B_reading = true;
mre.WaitOne();
Debug.WriteLine("gotten in RL:" + R_str);
}
private void b_textbox_KeyDown(object sender, KeyEventArgs e)
{
if (B_reading)
{
if (e.KeyCode == Keys.Enter)
{
B_reading = false;
mre.Set();
}
else
{
string key = e.KeyCode.ToString();
if (key.Length == 1 || e.KeyCode == Keys.Space )
B_str += e.KeyCode.ToString();
}
}
}