C# 如何使用ctrl+;滚轮
我有一些C# 如何使用ctrl+;滚轮,c#,wpf,C#,Wpf,我有一些RichTextBox: <RichTextBox x:Name="logTextBox" MouseWheel="LogTextBox_MouseWheel" ... > 但有一个问题。为了让它工作,我需要向上/向下滚动文本框的垂直开始/结束。但我希望它在任何地方都能正常工作,在整个文本框中。如何解决此问题?请改用PreviewMouseWheel,并确保设置了已处理标志: <RichTextBox x:Name="logTextBox" PreviewMouse
RichTextBox
:
<RichTextBox x:Name="logTextBox" MouseWheel="LogTextBox_MouseWheel" ... >
但有一个问题。为了让它工作,我需要向上/向下滚动文本框的垂直开始/结束。但我希望它在任何地方都能正常工作,在整个文本框中。如何解决此问题?请改用PreviewMouseWheel,并确保设置了已处理标志:
<RichTextBox x:Name="logTextBox" PreviewMouseWheel="LogTextBox_PreviewMouseWheel" />
private void LogTextBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (Keyboard.Modifiers != ModifierKeys.Control)
{
return;
}
e.Handled = true;
if (e.Delta > 0)
{
++logTextBox.FontSize;
}
else
{
--logTextBox.FontSize;
}
}
私有无效日志文本框\u预览鼠标滚轮(对象发送器,鼠标滚轮事件参数e)
{
if(Keyboard.Modifiers!=ModifierKeys.Control)
{
回来
}
e、 已处理=正确;
如果(e.Delta>0)
{
++logTextBox.FontSize;
}
其他的
{
--logTextBox.FontSize;
}
}
改用PreviewMouseWheel,并确保设置了Handled标志:
<RichTextBox x:Name="logTextBox" PreviewMouseWheel="LogTextBox_PreviewMouseWheel" />
private void LogTextBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (Keyboard.Modifiers != ModifierKeys.Control)
{
return;
}
e.Handled = true;
if (e.Delta > 0)
{
++logTextBox.FontSize;
}
else
{
--logTextBox.FontSize;
}
}
私有无效日志文本框\u预览鼠标滚轮(对象发送器,鼠标滚轮事件参数e)
{
if(Keyboard.Modifiers!=ModifierKeys.Control)
{
回来
}
e、 已处理=正确;
如果(e.Delta>0)
{
++logTextBox.FontSize;
}
其他的
{
--logTextBox.FontSize;
}
}
这在VB.NET中运行良好:
Private Sub TextBox1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel
If My.Computer.Keyboard.CtrlKeyDown = True Then
If e.Delta > 0 Then
If TrackBar1.Value = 100 Then
Else
TrackBar1.Value += 1
Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
TextBox1.Font = Label1.Font
End If
Else
If TrackBar1.Value = 1 Then
Else
TrackBar1.Value -= 1
Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
TextBox1.Font = Label1.Font
End If
End If
Return
End If
End Sub
这在VB.NET中运行良好:
Private Sub TextBox1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseWheel
If My.Computer.Keyboard.CtrlKeyDown = True Then
If e.Delta > 0 Then
If TrackBar1.Value = 100 Then
Else
TrackBar1.Value += 1
Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
TextBox1.Font = Label1.Font
End If
Else
If TrackBar1.Value = 1 Then
Else
TrackBar1.Value -= 1
Label1.Font = New Font(Label1.Font.FontFamily, TrackBar1.Value)
TextBox1.Font = Label1.Font
End If
End If
Return
End If
End Sub
如果将事件放在表单而不是文本框上会发生什么?如果将事件放在表单而不是文本框上会发生什么?将来,如果问题指定了一种语言,请使用该语言回答。显然这都是.NET,所以它应该很容易翻译。但是,如果读者正在与.NET API作斗争,那么换掉该语言可能会增加混乱。将来,如果问题指定了一种语言,请使用该语言回答。显然这都是.NET,所以它应该很容易翻译。但是,如果读者正在为.NETAPI而挣扎,那么换掉该语言可能只会增加混乱。