首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

焦点移动的有关问题

2012-05-08 
焦点移动的问题我做了一个英文打字游戏,加了一个button控件控制游戏的音乐,可是一按了button控件我的游戏

焦点移动的问题
我做了一个英文打字游戏,加了一个button控件控制游戏的音乐,可是一按了button控件我的游戏打字就不行了!按了键盘,那字母就是没有什么反应,我想那个应该是焦点移动的问题,可具体怎样弄我就不懂了!在网上找资料弄了半天就是弄不出来!请各位兄弟姐妹帮个忙咯!谢谢。。
下面是代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 英语字母练习
{
  public partial class Form1 : Form
  {
  Random rnd = new Random();
  Point[] p = new Point[6];//定义成成员变量,所有方法都可以使用
  int a = 6, b = 0,k=0;//z 为出现字符总数,q 表示击中的个数
  Label[] lab = new Label[6];//定义数组用来存放标签 其中数组的定义可以是 类名[] 数组名 =new 类名[];
  public Form1()
  {
  InitializeComponent();
  }

  private void label1_Click(object sender, EventArgs e)
  {

  }

  private void label2_Click(object sender, EventArgs e)
  {

  }

  private void Form1_Load(object sender, EventArgs e)
  {
  axWindowsMediaPlayer1.URL = "最炫民族风.mp3"; 

  //初始化标签的位置
  p[0] = new Point(100, 100);
  p[1] = new Point(300,300);
  p[2] = new Point(500,200);
  p[3] = new Point(700,450);
  p[4] = new Point(900,350);
  p[5] = new Point(1100,600);
  //对Label数组进行初始化
  lab[0] = label1;
  lab[1] = label2;
  lab[2] = label3;
  lab[3] = label4;
  lab[4] = label5;
  lab[5] = label6;
  //Random rnd = new Random();
  for (int i = 0; i < 6; i++)
  {//生成A-Z以及1-8的ASCII值
  rang (i);
  }

  }
  private void rang(int i)
  {
  //生成A-Z以及1-8的ASCII值
  //Random rnd = new Random();
  int r = rnd.Next(48, 91);
  while (57 < r && r < 65)
  {
  r = rnd.Next(48, 91);
  }
  char c = (char)r;
  lab[i].Text = c.ToString();
  lab[i].Location = p[i];

   
  }

  private void label3_Click(object sender, EventArgs e)
  {

  }

  private void label4_Click(object sender, EventArgs e)
  {

  }

  private void timer1_Tick(object sender, EventArgs e)
  {
  p[0].Y += 10;
  p[1].Y += 5;
  p[2].Y += 8;
  p[3].Y += 2;
  p[4].Y += 6;
  p[5].Y += 7;
  //重新定位标签
  for (int i = 0; i < 6; i++)
  {
  lab [i].Location =p[i];
  }

  for (int i = 0; i < 6; i++)
  {
  if (p[i].Y >= Height)
  {
  p[i].Y = 0;
  rang(i);
  a++;
  k++;
  }
   
  }
   
  }
   
  private void Form1_KeyPress(object sender, KeyPressEventArgs e)
  {
  string ste= Char . ToUpper(e.KeyChar ).ToString ();


  for (int i=0;i<6;i++)
  {

  if (ste == lab[i].Text)
  {
  lab[i].Visible = false;
  pictureBox1.Visible = true;

  pictureBox1.Location = p[i];
  p[i].Y = 0;
  b++;
  rang(i);
  a++;
  k++;
  break;

  }
  } 
   
   
  timer2.Enabled = true;

  }

  private void timer2_Tick(object sender, EventArgs e)
  {
  for (int i = 0; i < 6; i++)
  {
  lab[i].Visible = true;
  }

  pictureBox1.Visible = false;

  timer2.Enabled = false;
  }

  private void label5_Click(object sender, EventArgs e)
  {

  }

  private void timer3_Tick(object sender, EventArgs e)
  {
  float c = (float)(b) / a * 100;
  int d = k-b;
  label7.Text = "字母、数字出现的个数:" + a.ToString();
  label8.Text = "打中的正确个数:" + b.ToString();
  label9 .Text ="错误的个数:"+d.ToString ();
  label10.Text = "打中的正确率:" + c.ToString()+"%";
  }

  private void button1_Click(object sender, EventArgs e)
  {

   
  if (button1.Text == "音乐:关")
  {
  axWindowsMediaPlayer1.Ctlcontrols.pause ();
  button1.Text = "音乐:开";

  }
  else if (button1.Text == "音乐:开")
  {
  axWindowsMediaPlayer1.Ctlcontrols.play();
  button1.Text = "音乐:关";

  }
  }


  }
}

[解决办法]
设置button的Focusable为False
[解决办法]
那就Form1.Focus();

探讨

我是想让这个窗体获得焦点啊!并不是单独某个文本框!请您能够讲清楚一点好吗?我是一个初学者,对于一些知识还是不叫模糊的!劳驾咯。。。

热点排行