C# 按下该键时执行该操作
我正在处理我的项目,我需要添加一个只在按下左CTRL键时执行的操作 这是我的代码: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; }
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;
}
}