Visual studio 2010 调用类时,如何使用变量作为类成员而不是提供的默认属性?
首先,如果问题的描述过于含糊或使用不恰当的行话,我真诚地道歉 简单地说,当窗口处于非活动状态时,我使用键盘挂钩来识别按键输入。按下的键被放入文本框中。我想将键值设置为文本框中的任何值: 例如,如果我按“1”,文本框值将设置为D1,相应的unicode值将分配给不同的变量。如果我按“Q”,文本框值将设置为“Q”,并将相应的unicode值分配给另一个变量 假设textbox1的值为“f1” 然后将其赋值为“123”,因为f1键的值为123 因此,当按下f1键时,我希望它执行如下代码的特定部分:Visual studio 2010 调用类时,如何使用变量作为类成员而不是提供的默认属性?,visual-studio-2010,Visual Studio 2010,首先,如果问题的描述过于含糊或使用不恰当的行话,我真诚地道歉 简单地说,当窗口处于非活动状态时,我使用键盘挂钩来识别按键输入。按下的键被放入文本框中。我想将键值设置为文本框中的任何值: 例如,如果我按“1”,文本框值将设置为D1,相应的unicode值将分配给不同的变量。如果我按“Q”,文本框值将设置为“Q”,并将相应的unicode值分配给另一个变量 假设textbox1的值为“f1” 然后将其赋值为“123”,因为f1键的值为123 因此,当按下f1键时,我希望它执行如下代码的特定部分:
myhotkey = keys.f1 'Assigns a value of "123" to myhotkey
If e.KeyCode = MyHotKey1 Then 'If the key "f1" aka "123" is pressed then
dosomeaction()
Select case hotkey1
Case is = "d1"
myhotkey1 = keys.D1 'Sets the value of myhotkey1 to 49
Case is = "d2"
myhotkey1 = keys.D2 'Sets the value of myhotkey1 to 50
Case is = "f1"
myhotkey1 = keys.F1 'Sets the value of myhotkey1 to 123
Case is = "decimal"
myhotkey1 = keys.Decimal 'Sets the value of myhotkey1 to 110
为了让程序根据输入的热键执行代码的某一部分,我现在让它指定一个myhotkey值,如下所示:
myhotkey = keys.f1 'Assigns a value of "123" to myhotkey
If e.KeyCode = MyHotKey1 Then 'If the key "f1" aka "123" is pressed then
dosomeaction()
Select case hotkey1
Case is = "d1"
myhotkey1 = keys.D1 'Sets the value of myhotkey1 to 49
Case is = "d2"
myhotkey1 = keys.D2 'Sets the value of myhotkey1 to 50
Case is = "f1"
myhotkey1 = keys.F1 'Sets the value of myhotkey1 to 123
Case is = "decimal"
myhotkey1 = keys.Decimal 'Sets the value of myhotkey1 to 110
我如何为键分配一个动态值,而不必检查user32库中的每一次击键可能性?当你叫钥匙的时候,它将显示一个参数列表,其中包含所有可用的击键及其对应的值
作为一个例子,我想完成以下几点。显然,这部分代码不起作用,但如果语法正确,我希望它能以同样的方式工作:
myhotkey1 = keys.(text1.text)
与其使用文本框来保存值,不如将其仅用于显示。立即存储您的键值。无论如何,您是如何设置文本框值的?文本框值由keyboardhook模块的keyup事件分配。Private Sub kbHook_KeyUp(ByVal Key As System.Windows.Forms.Keys)处理kbHook.KeyUp Me.ActiveControl.Text=Key.ToString End Sub,就像这样。您应该将其编辑到您的问题中,而不是在评论中发布。但是我可以告诉你,代码是你应该设置变量的地方,我设置变量的地方与我要完成的任务没有任何关系。我知道该值当前被不正确地存储在文本框中。当被调用时,它将以任何方式包含相同的值;我想我完全误解了你的问题。我以为你在寻找一种方法来避免巨大的
select
。很抱歉。祝你好运