小编ePa*_*dit的帖子

C# - 如何使用 SendKeys.Send 通过 SHIFT 键发送小写字母?

我在我的项目中使用这个键盘钩子。我无法在按下 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.SupressKeyPressSendKeys("b".toLower())并将上面的代码放在 KeyUp 事件中,但本质上是这样。

请帮助我,我非常沮丧,我的应用程序开发此时受到了打击。

.net c# keyboard-hook sendkeys

5
推荐指数
1
解决办法
4509
查看次数

C# - 动态更改RichTextBox中的文本字体?

我在"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.

.net c# fonts richtextbox

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

.net ×2

c# ×2

fonts ×1

keyboard-hook ×1

richtextbox ×1

sendkeys ×1