Vb.net 如何在winforms中更改文本框边框的颜色和宽度?

Vb.net 如何在winforms中更改文本框边框的颜色和宽度?,vb.net,winforms,colors,textbox,border,Vb.net,Winforms,Colors,Textbox,Border,我想知道如何更改文本框的边框颜色和边框宽度,如下所示 如果是鼠标悬停,我需要显示一种颜色,在鼠标按下时,我需要显示另一种颜色 有人可以向我解释详细的流程和来源(如果有的话)。您可以执行以下操作: 将文本框放在面板内 为面板提供1像素的填充 将文本驳接设置为Fill 使文本框没有边框 然后,在文本框中处理鼠标事件,当鼠标进入/离开时,在两种颜色之间切换面板的背景色 就使用资源/句柄而言,这不是最优雅的方法,但在没有任何自定义绘图的情况下,它应该可以工作。与上面相同,但有一点扭曲。不幸的是,由

我想知道如何更改文本框的边框颜色和边框宽度,如下所示

如果是鼠标悬停,我需要显示一种颜色,在鼠标按下时,我需要显示另一种颜色


有人可以向我解释详细的流程和来源(如果有的话)。

您可以执行以下操作:

  • 文本框
    放在
    面板内
  • 为面板提供1像素的填充
  • 将文本驳接设置为
    Fill
  • 使文本框没有边框
然后,在文本框中处理鼠标事件,当鼠标进入/离开时,在两种颜色之间切换面板的背景色


就使用资源/句柄而言,这不是最优雅的方法,但在没有任何自定义绘图的情况下,它应该可以工作。

与上面相同,但有一点扭曲。不幸的是,由于声誉问题,我不能发表评论

  • 制作一个
    UserControl
  • 将all上的usercontrol padding设置为1
  • 面板
    放在用户控件内
  • 将面板停靠样式设置为“填充”
  • 将面板填充设置为
    6,3,6,3
    (左、上、右、下)
  • 在面板内放置一个
    文本框
  • 将文本框停靠样式设置为“填充”
  • 将文本框边框样式设置为“无”
…然后对于边框颜色变化特性,您可以使用

Dim tbxFocus As Boolean = False

Private Sub tbx_GotFocus(sender As Object, e As EventArgs) Handles tbx.GotFocus

    tbxFocus = True
    Me.BackColor = Color.CornflowerBlue

End Sub

Private Sub tbx_LostFocus(sender As Object, e As EventArgs) Handles tbx.LostFocus

    tbxFocus = False
    Me.BackColor = SystemColors.Control

End Sub

Private Sub tbx_MouseEnter(sender As Object, e As EventArgs) Handles tbx.MouseEnter

    If tbxFocus = False Then Me.BackColor = SystemColors.ControlDark

End Sub

Private Sub tbx_MouseLeave(sender As Object, e As EventArgs) Handles tbx.MouseLeave

    If tbxFocus = False Then Me.BackColor = SystemColors.Control

End Sub

这是非常不言自明的。

谢谢你的回复,我认为这是最简单的方法,而不是使用绘画方法或使用不同的类。