日期:2014-05-17  浏览次数:21010 次

关于ENABLE=FALSE后样式的修改
本帖最后由 l7890590p 于 2013-01-23 14:39:51 编辑
现在有几个TEXTBOX。ENABLE=FALSE之后,想使其显示字体为黑色。现在默认的是灰色。尝试了重绘。重绘后字体位置和大小发生了变化。 求一个好方法满足ENABLE=FALSE后字体显示为黑色。由于是共通代码,希望尽量避免隐患发生。
 Protected Overrides Sub OnEnabledChanged(ByVal e As System.EventArgs)
        MyBase.OnEnabledChanged(e)

        If Me.Enabled Then
            Me.SetStyle(ControlStyles.UserPaint, False)
        Else
            Me.SetStyle(ControlStyles.UserPaint, True)
        End If

        Me.Invalidate()
    End Sub

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)

        Dim b As System.Drawing.SolidBrush = New System.Drawing.SolidBrush(Me.ForeColor)

        e.Graphics.DrawString(Me.Text, Me.Font, b, Me.ClientRectangle())
    End Sub
vb ENABLE

------解决方案--------------------
那还是别用enable=false了
直接readonly=true就行了
------解决方案--------------------
http://blog.csdn.net/fangxinggood/article/details/3869613
------解决方案--------------------
就改为Label或者自己写个控件呗。有这时间多做点别的事情,干么那么纠结?