我正在将项目从Visual Basic .Net转换为C#; 我已经能够找出大部分差异并使代码工作,但我遇到了诸如以下代码片段之类的障碍:
private void rtbSend_KeyDown1(object sender, KeyEventArgs e)
{
if (e.KeyCode == 17)
{
blnCtrlKey = true;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,我在主题行中得到错误; 令我困惑的是,KeyCode的值应该已经是int,所以错误对我来说没什么意义.谁能指出我正确的方向?我想让这个代码的程序将在4月中旬开始工作.
不,传递给KeyDown事件的KeyEventArgs参数的KeyCode属性是Keys(枚举)类型.
在C#中,您不能依赖编译器/语言为您从一种类型转换为另一种类型.比较值时使用适当的转换或转换,或者更好地使用正确的类型.
private void rtbSend_KeyDown1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.ControlKey)
{
blnCtrlKey = true;
}
}
Run Code Online (Sandbox Code Playgroud)
与您的情况相关,我希望发出控制键的当前状态已在KeyEventArgs 的Control属性中可用,因此如果您需要测试组合键IE,则使用此属性会更好:CTRL + N
private void rtbSend_KeyDown1(object sender, KeyEventArgs e)
{
// Control is pressed with the N key
if (e.Control && e.KeyCode == Keys.N)
{
.....
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1168 次 |
| 最近记录: |