我在我的项目中使用这个键盘钩子。我无法在按下 SHIFT 修饰键的情况下使用 SendKeys.Send() 发送小写字母。我的应用程序需要(例如)如果用户按下K按钮“a”,则应发送,如果他按下SHIFT+ K,则应发送“b” 。代码是:
void gkh_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.K)
{
if (Control.ModifierKeys == Keys.Shift)
SendKeys.Send("b");
else
SendKeys.Send("a");
}
e.Handled == true;
}
Run Code Online (Sandbox Code Playgroud)
但它发送的是“B”(大写字母)而不是“b”,即该SHIFT键将发送的击键“b”更改为大写。即使将Keys.Shift添加到挂钩后也会发生这种情况。
我尝试了很多方法,包括使用e.SupressKeyPress、SendKeys("b".toLower())并将上面的代码放在 KeyUp 事件中,但本质上是这样。
请帮助我,我非常沮丧,我的应用程序开发此时受到了打击。
我在"richTextBox"和"comboBox"中有一些文本,其中包含一些字体的名称.如果从"comboBox"中选择了新字体,我想更改"richTextBox"中的文本字体.我正在使用以下代码.
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 1)
richTextBox1.Font = new Font("Comic Sans MS", 14);
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我选择字体,文本不会自动更改其字体,只有在我键入一些新文本时才会更改.我也试过richTextBox1.SelectionFont而不是richTextBox1.Font.我也在InputTextBox.Refresh();上面的代码后添加了刷新文本框但是静脉.
如何通过从comboBox中选择来更改文本的字体?
更新:我只是发现上面的代码很好,问题是我使用了错误的事件调用,comboBox1_SelectedValueChanged()代替使用comboBox1_SelectedIndexChanged()它现在工作正常.
提示:如果要更改整个TextBox使用的字体richTextBox1.Font,如果要更改所选文本的字体,请仅使用richTextBox1.SelectionFont.