• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

(50分)怎样修改disabled textbox的前景色?谢谢!

lufier 2005-03-01 05:15:23
虽然有人已经问过,但回答中未找到方法。再提问一次,希望高手可以回答。本人系vb.net新手,回答时如能添加一点代码,不胜感激!

原来我在vb 6.0中自己写过一个控件,类似textbox,不同的是disabled的时候仍可以设定前景色。
现在要使用.net了,请问怎么实现这个功能?

我想自定义一个class,继承textbox,然后通过overrides某些特性来实现?请问可行否?如果可行,overrides哪个特性?如果不可行,怎么才能实现?

谢谢!
...全文
125 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
T2 2005-03-02
TextBox不支持CreateGraphics,也不支持OnPaint
回复
lufier 2005-03-02
谢谢大家的回复。
回复
hamadou 2005-03-02
下面只是实现了一部分,在选中文本时颜色会变。你再改改。有时间我再来看!
Public Sub New()
MyBase.New()

'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化
Me.Width = 100
Me.Height = 21
setstyle(ControlStyles.UserPaint, True)
End Sub

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
If Me.Enabled = False Then
e.Graphics.FillRectangle(New SolidBrush(Me.Parent.BackColor), e.ClipRectangle)

Else
e.Graphics.FillRectangle(Brushes.White, 0, 0, Width, Height)

End If
e.Graphics.DrawString(Text, Font, New SolidBrush(Me.ForeColor), 0, 0)
End Sub
回复
lufier 2005-03-02
我写了下面这段,好像还是不行。是不是我写的不对?如果实在不行,只好还是用label和textbox了。

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim g As System.Drawing.Graphics = Me.CreateGraphics()
Dim myBrush As New _
System.Drawing.SolidBrush(System.Drawing.Color.Red)
Dim drawFont As New System.Drawing.Font("Arial", 16)

MyBase.OnPaint(e)

If Me.Enabled = False Then
g.DrawString("1254", Font, myBrush, 0, Top + 10)
End If

End Sub
回复
lufier 2005-03-02
textbox 没有paint吧?
回复
hamadou 2005-03-01
在textbox控件的paint 方法中试着修改
g.DrawString(Text, Font, myBrush, 0, Top + 10) 'mybrush是你要设置的字体颜色。0,top+10 :字体写入的位置。你再修改一下看看!
回复
lufier 2005-03-01
我原来在vb 6.0的时候就是用label和textbox做的这个控件。因为考虑到.net有继承性,所以想问一下有没有更简单方便的方法?
回复
cqzhangq 2005-03-01
楼上的可行。
textbox继承来修改应该也不能达到你想要的效果。
回复
hamadou 2005-03-01
楼上的方法可行。如果你想做自定义控件的话,在paint里改吧!
回复
捏造的信仰 2005-03-01
那还不简单,用Label作成这个样子,埋在TextBox后面就是了。
回复
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-01 05:15
社区公告
暂无公告