gpt4 book ai didi

c# - 运算符 '==' 不能应用于类型 'System.Windows.Forms.Keys' 和 'int' 的操作数

转载 作者:行者123 更新时间:2023-11-30 13:36:55 25 4
gpt4 key购买 nike

我正在将项目从 Visual Basic .Net 转换为 C#;我已经能够找出大部分差异并使代码正常工作,但我遇到了一些问题,例如以下代码片段:

private void rtbSend_KeyDown1(object sender, KeyEventArgs e)
{
if (e.KeyCode == 17)
{
blnCtrlKey = true;
}
}

当我尝试编译时,主题行中出现错误;令我困惑的是 KeyCode 的值应该已经是 int,所以这个错误对我来说意义不大。谁能指出我正确的方向?我希望该程序在 4 月中旬之前包含在工作中。

最佳答案

不,KeyCode传递给 KeyDown 事件的 KeyEventArgs 参数的属性类型为 Keys (枚举)。

在 C# 中,您不能依赖编译器/语言为您从一种类型转换为另一种类型。比较值时使用适当的类型转换或转换,或者最好使用正确的类型。

private void rtbSend_KeyDown1(object sender, KeyEventArgs e) 
{
if (e.KeyCode == Keys.ControlKey)
{
blnCtrlKey = true;
}
}

根据您的情况,我希望表明 Control 键的当前状态已经在 Control 中可用。 KeyEventArgs 的属性,因此如果您需要测试组合键 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)
{
.....
}
}

关于c# - 运算符 '==' 不能应用于类型 'System.Windows.Forms.Keys' 和 'int' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28226118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com