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

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

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

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

谢谢!
...全文
156 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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后面就是了。

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧