Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按下该键时执行该操作_C#_Visual Studio - Fatal编程技术网

C# 按下该键时执行该操作

C# 按下该键时执行该操作,c#,visual-studio,C#,Visual Studio,我正在处理我的项目,我需要添加一个只在按下左CTRL键时执行的操作 这是我的代码: private void Izrada_kartice_KeyDown(object sender,KeyEventArgs e) { if(e.Control) { promijeni_veličinu_naslov = true; this.BackColor = Color.Red; }

我正在处理我的项目,我需要添加一个只在按下左CTRL键时执行的操作

这是我的代码:

   private void Izrada_kartice_KeyDown(object sender,KeyEventArgs e)
    {

        if(e.Control)
        {
            promijeni_veličinu_naslov = true;

            this.BackColor = Color.Red;
        }

    }

    private void Izrada_kartice_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Control)
        {
            promijeni_veličinu_naslov = false;

            this.BackColor = Color.Green;
        }
    }
现在,当我运行此代码并按CTRL键时,一切都正常,但当我释放CTRL键时 什么也没发生

我想试试这个:

     private void Izrada_kartice_KeyDown(object sender,KeyEventArgs e)
{

    if(e.KeyCode == Keys.A)
    {
        promijeni_veličinu_naslov = true;

        this.BackColor = Color.Red;
    }

}

private void Izrada_kartice_KeyUp(object sender, KeyEventArgs e)
{
        if(e.KeyCode == Keys.A)
    {
        promijeni_veličinu_naslov = false;

        this.BackColor = Color.Green;
    }
}

这可以正常工作,但我需要使用CTRL键来执行此操作,释放CTRL键时会触发KeyUp事件,但由于不再按住CTRL键,
e.Control
布尔值未设置为True

简而言之:不要通过检查
e.Control
来检测Ctrl的释放,而是检查
e.KeyCode
;它将是
键。ControlKey

if(e.KeyCode == Keys.ControlKey)
{
    ...
}

在第二个代码中,将Keys.A替换为Keys.ControlKey,如下所示:

private void Izrada_kartice_KeyDown(object 
sender,KeyEventArgs e)
{

if(e.KeyCode == Keys.ControlKey)
{
    promijeni_veličinu_naslov = true;

    this.BackColor = Color.Red;
}

}

private void Izrada_kartice_KeyUp(object sender, 
KeyEventArgs e)
{
    if(e.KeyCode == Keys.ControlKey)
{
    promijeni_veličinu_naslov = false;

    this.BackColor = Color.Green;
}
}