if(e.KeyChar==(char)ConsoleKey.F1);空声明?C#Visual Studio.NET窗体

本文关键字:C#Visual 声明 Studio NET 窗体 F1 KeyChar char ConsoleKey if | 更新日期: 2023-09-27 18:21:14

所以我终于找到了如何将我想绑定的按钮绑定到我的声卡上,但现在代码给了我一个错误。

Severity Code Description Project File Line
Warning CS0642 Possible mistaken empty statement WindowsFormsApplication6 C:'Users'User'Documents'Visual Studio 2015'Projects'WindowsFormsApplication6'Form1.cs 125

我觉得我好像错过了什么,但我真的看不出我错过了什么。我尝试了几种不同的解决方案,但对我没有任何好处,我尝试了一些尝试和错误,这让我最终回到了这里。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    /// <summary>
    /// Version: 1.0
    /// Farm SoundBoard
    /// Created By Me
    /// Date 2015-10-29
    /// Category: Fun
    /// </summary>
    namespace WindowsFormsApplication6
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
            }
            private void button1_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.cow;
                player.Play();
            }
            private void button2_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.bird;
                player.Play();
            }
            private void button3_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.bee;
                player.Play();
            }
            private void button4_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.elephant;
                player.Play();
            }
            private void button5_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.tiger;
                player.Play();
            }
            private void button6_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.cat;
                player.Play();
            }
            private void button7_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.dog;
                player.Play();
            }
            private void button8_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.lion;
                player.Play();
            }
            private void button9_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.flies;
                player.Play();
            }
            private void button10_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.fish;
                player.Play();
            }
            private void button11_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.parrot;
                player.Play();
            }
            private void button12_Click(object sender, EventArgs e)
            {
                System.Media.SoundPlayer player = new System.Media.SoundPlayer();
                player.Stream = Properties.Resources.car;
                player.Play();
            }
            private void button14_Click(object sender, EventArgs e)
            {
                panel1.Visible = true;
            }
            private void button13_Click(object sender, EventArgs e)
            {
                panel1.Visible = false;
            }
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)ConsoleKey.F1) ;
            System.Media.SoundPlayer player = new System.Media.SoundPlayer();
            player.Stream = Properties.Resources.cow;
            player.Play();
        }
    }
 }

if(e.KeyChar==(char)ConsoleKey.F1);空声明?C#Visual Studio.NET窗体

问题是这一行:

if (e.KeyChar == (char)ConsoleKey.F1) ;

if语句封装一些代码,以便在条件为true时仅执行。C#中的If语句通常将其条件代码体封装在{ }括号中。出于礼貌,编译器假设缺少括号意味着条件体中有一行:您编写的下一行代码。在你的案例中,你基本上已经写了:

if (e.KeyChar == (char)ConsoleKey.F1) { }

因为if语句末尾的;终止了代码行。你可以这样做:

 if (e.KeyChar == (char)ConsoleKey.F1) /* some code here */;

或者这个:

if (e.KeyChar == (char)ConsoleKey.F1)
{
    // Some code here
}

所以这就是发生的事情。

我试图允许KeyPreview&KeyDown在表单中的属性&它不起作用,但当我尝试用代码添加相同的函数时,它就起作用了。

以下是的工作原理

private void Form1_Load(object sender, EventArgs e)
{
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(button1_KeyDown);
}

private void button1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode.ToString() == "F1")
    {
        button2_Click(null, null);
    }

所以我仍然需要模拟鼠标按下按钮,但嘿,它起作用了!