以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]NumericComboBox控件根据录入的正负值改变字体颜色的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=125309)

--  作者:huangfanzi
--  发布时间:2018/9/25 23:55:00
--  [求助]NumericComboBox控件根据录入的正负值改变字体颜色的问题
NumericComboBox控件的ValueChanged事件有以下代码:

If e.Sender.Value < 0 Then
e.Sender.ForeColor = Color.Red
Else
e.Sender.ForeColor = Color.Blue
End If

上面代码不起作用,在数字框内录入个-1,字体色没发生变化,不知是怎么回事

--  作者:有点甜
--  发布时间:2018/9/26 8:53:00
--  

写到textchanged事件去

 

If val(e.Sender.text) < 0 Then
    e.Sender.ForeColor = Color.Red
Else
    e.Sender.ForeColor = Color.Blue
End If

--  作者:huangfanzi
--  发布时间:2018/9/27 1:04:00
--  
在测试窗口加了个NumericComboBox控件试了下,当大于等于0时,字体变蓝色,但当小于0时,字体变成黑色,不会是红色,老师可以试下看看
--  作者:有点甜
--  发布时间:2018/9/27 9:06:00
--  

应该算是bug,你可以动态添加控件处理

 

Dim n As New System.Windows.Forms.NumericUpDown
n.width = 100
n.height = 100
n.left = 10
n.Top = 20
n.Minimum = 1
n.Maximum = 10
n.Forecolor = Color.blue
e.Form.panel.controls.add(n)

 

https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.numericupdown?redirectedfrom=MSDN&view=netframework-4.7.2

 

 

 


--  作者:逛逛
--  发布时间:2018/9/27 9:21:00
--  

AfterLoad




Dim ww  = e.Form.Controls("NumericComboBox1").BaseControl

ww.ForeColor = Color.Blue

ww.NegativeForeColor = Color.red


--  作者:huangfanzi
--  发布时间:2018/9/27 11:08:00
--  
我的代码本意是当这个控件中的数值是负数时,为红色字体,0或正数是蓝色,这个控件是由其它控件的数值计算而来,不是说这个控件一定要字体显示蓝色或红色,如果真是BUG,请官方尽快更正下吧!
--  作者:有点甜
--  发布时间:2018/9/27 11:10:00
--  
看5楼,用那个方法。