小弟刚做不久 比叫菜.问的问题大家不要见笑 谢谢.
在一个窗体LOAD事件了我用Thread.Sleep(4000);让他等待4秒,而在这4秒中用户有可能按键盘,这样如果用户按了我希望触发一个KeyPress事件,同时在KeyPress事件中取得用户按的哪个键.并把这个键的信息ToString()之后伏值给一个Class级别的字符串变量.在触发完KeyPress事件后我希望,程序能继续回到load事件中执行Thread.Sleep(4000);后面的代码.当然如果没有触发KeyPress事件继续执行下面的.
int j = random.Next(4);
this.pictureBox1.Image = Image.FromFile("d:\\Experiment\\" + j + ".bmp");
label1.Text = "";
label2.Text = "";
System.Threading.Thread.Sleep(4000);
if (!this.flag == "1" && !this.flag == "2")
{
MessageBox.Show("选择超时", "选择错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{ }
Form4 newform4 = new Form4();
this.Close();
newform4.Show();
} private void Form3_KeyPress(object sender, KeyPressEventArgs e)
{
this.flag = Console.ReadKey().ToString();
}
在一个窗体LOAD事件了我用Thread.Sleep(4000);让他等待4秒,而在这4秒中用户有可能按键盘,这样如果用户按了我希望触发一个KeyPress事件,同时在KeyPress事件中取得用户按的哪个键.并把这个键的信息ToString()之后伏值给一个Class级别的字符串变量.在触发完KeyPress事件后我希望,程序能继续回到load事件中执行Thread.Sleep(4000);后面的代码.当然如果没有触发KeyPress事件继续执行下面的.
int j = random.Next(4);
this.pictureBox1.Image = Image.FromFile("d:\\Experiment\\" + j + ".bmp");
label1.Text = "";
label2.Text = "";
System.Threading.Thread.Sleep(4000);
if (!this.flag == "1" && !this.flag == "2")
{
MessageBox.Show("选择超时", "选择错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{ }
Form4 newform4 = new Form4();
this.Close();
newform4.Show();
} private void Form3_KeyPress(object sender, KeyPressEventArgs e)
{
this.flag = Console.ReadKey().ToString();
}
解决方案 »
- C#关于字节数组转换为二进制字符串方法
- 关于C/S结构的监控系统心得交流
- 求个可以 HTTPS 包的截取软件(不要用IE的)
- Window CE 中的cab安装错误
- [解惑 ] 一分页控件问题. 有时间的亲,就帮忙看看吧.
- 求助,关于char
- Code UI Test Builder无法定位元素
- 关于在DOTNET源码保护的重要问题。大家多多发言。一定会给有贡献的高手加份的
- 如何使应用程序的窗体在最大化时还是显示在Windows状态栏的上方(包括状态栏的高度调整时也一样如此)?
- vs2017创建core2.0遇到两个问题
- datagrid中列的显示顺序如何设定?
- 各位高手请给小弟提供几个c#+access 的开源例子
private void YouMethod()
{
//YouMethod
Thread.Sleep(4000);
MessageBox.Show("aaaaa");
}
private void test()
{
Thread TestThread=new Thread(new ThreadStart(YouMethod));
TestThread.Start();
} private void Form1_Load(object sender, System.EventArgs e)
{
this.KeyPreview=true;
test();
} private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
MessageBox.Show(e.KeyChar.ToString());
}
比如我继承了一个BUTTON:
using System;namespace lijie
{
/// <summary>
/// ClassJCBT 的摘要说明。
/// </summary>
public class ClassJCBT:System.Windows.Forms.Button
{
public ClassJCBT()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public event System.EventHandler LJ; protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)
{
if(LJ != null)
LJ(null,null);
if(e.KeyCode == System.Windows.Forms.Keys.D1)
this.Text = "你按下了数字键“1”";
if(e.KeyCode == System.Windows.Forms.Keys.D2)
this.Text = "你按下了数字键“2”";
base.OnKeyDown (e);
}
主线程执行的时候子线程也在执行,如果去年你的那个MessageBox.Show("aaaaa");
你再看看是否会再现你所谓的结果???
用Thread.Sleep(4000);不是个好招,一执行它,所有的线程全部停止,而不是某一个线程停止。
方法俺也不会,顶一下吧……