一个子程序/在富文本框中更改文本颜色/没有按钮处理程序

时间:2010-10-08 03:17:07

标签: vb.net visual-studio

大家好!我已经有一段时间了,我不确定如何解决这个问题:

我正在使用VB.Net中的一个项目,我有一个带有富文本框的表单。我有一个带有4个单选按钮的组合框,用于更改文本的字体颜色。巧合的是,我必须为第二组单选按钮重复相同的功能,这将改变文本字体系列。

无论如何,我只能通过以下方式成功更改我在富文本框中突出显示的文字的字体颜色:

Private Sub rbtnBlack_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnBlack.CheckedChanged
    rtbxTextEditor.SelectionColor = Color.Black
End Sub

Private Sub rbtnRed_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnRed.CheckedChanged
    rtbxTextEditor.SelectionColor = Color.Crimson
End Sub

Private Sub rbtnGreen_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnGreen.CheckedChanged
    rtbxTextEditor.SelectionColor = Color.DarkGreen
End Sub

Private Sub rbtnBlue_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnBlue.CheckedChanged
    rtbxTextEditor.SelectionColor = Color.RoyalBlue
End Sub

有没有办法可以写一个sub(我假设我会使用sub,因为我认为我不需要返回任何东西,从而消除了使用函数)来处理更改富文本框中选定的文本颜色,而不必为每个单选按钮使用单独的子项?请注意,根据我老师的规格,她不会使用任何按钮处理程序。

谢谢,如果我提供了足够的信息,请告诉我!

1 个答案:

答案 0 :(得分:0)

这样的事情会起作用:

Private Sub somethingChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles rbtnBlack.CheckedChanged,rbtnRed.CheckedChanged,rbtnGreen.CheckedChanged ' etc ...
  IF sender = rbtnBlack THEN
    rtbxTextEditor.SelectionColor = Color.Black
  END IF

  IF sender = rbtnRed THEN
    rtbxTextEditor.SelectionColor = Color.Crimson
  END IF

  ' etc

End Sub