十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
近来项目用到了一个类似WEB控件DataGrid中自定义行或列的颜色的功能 然而应用却是在WIN的窗体下 实现起来无法使用类似JavaScript的脚本注册的功能来动态完成 十分着急 察看了CSDN的一些关于WinForm下的关于DataGrid的资料 看到这样的一篇介绍DG结构的美文 题目是《Henry手记:WinForm Datagrid结构剖析》 作者是韩睿(Latitude) 其中介绍了WIN DG的颜色的定义 但是主要是针对每一个Cell的 我们需要的则是标记某一行的数据 用颜色突出显示 所以作了部分改动 现在把部分代码张贴出来供大家参考 . 基础类出自韩睿 URL: ?id= Public Class DataGridColoredTextBoxColumn Inherits DataGridTextBoxColumn Public rowcollection As New Collection() Public BackColor() As Color Public ForeColor() As Color Private Function GetText(ByVal Value As Object) As String If TypeOf (Value) Is System DBNull Then Return NullText ElseIf Value Is Nothing Then Return Else Return Value ToString End If End Function Protected Overloads Overrides Sub Paint(ByVal g As System Drawing Graphics ByVal bounds As System Drawing Rectangle _ ByVal source As System Windows Forms CurrencyManager _ ByVal rowNum As Integer _ ByVal backBrush As System Drawing Brush _ ByVal foreBrush As System Drawing Brush _ ByVal alignToRight As Boolean) Dim text As String
成都创新互联公司是一家集网站建设,南康企业网站建设,南康品牌网站建设,网站定制,南康网站建设报价,网络营销,网络优化,南康网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
text = GetText(GetColumnValueAtRow(source rowNum)) backBrush = New SolidBrush(TextBox BackColor) foreBrush = New SolidBrush(TextBox ForeColor)
ReDim Preserve BackColor(rowcollection Count) ReDim Preserve ForeColor(rowcollection Count) Dim i As Integer = Do While (i = rowcollection Count) If rowNum = Val(rowcollection Item(i)) Then
If Not BackColor(i ) IsEmpty Then backBrush = New SolidBrush(BackColor(i )) End If If Not ForeColor(i ) IsEmpty Then foreBrush = New SolidBrush(ForeColor(i )) End If End If i += Loop MyBase PaintText(g bounds text backBrush foreBrush alignToRight) End Sub End Class 关于行颜色定义的类 Imports System Windows Forms Namespace Truck_WEB Public Class DrawDGClass Public Class ReDrawDataDridControls : Inherits DataGridColoredTextBoxColumn Public Sub DrawCorol(ByRef DG As DataGrid Optional ByVal CurrentRowindex As Integer = ) 设置选中的行的颜色 默认是第一行选中 Dim dt As DataTable Dim ts As New DataGridTableStyle() ts AllowSorting = False Dim aColumnTextColumn As DataGridColoredTextBoxColumn dt = CType(DG DataSource DataTable) ts MappingName = CType(DG DataSource DataTable) TableName DG TableStyles Clear() Dim numCols As Integer numCols = dt Columns Count Dim i j As Integer i = j =
lishixinzhi/Article/program/net/201311/12321
通过改变ListViewItem及其ListViewSubItem的前景色,改变整行的颜色。实现方法如下 (1)在Visual Studio中新建一个“Windows 窗体应用程序”项目 (2)在Form1窗体设计器上添加一个ListView控件
您好,这种方法可以通过按钮的MouseDown和MouseUp事件来实现,比如说,当单击按钮RedColor(RedColor为这个按钮的Name属性的属性值)的时候,要使按钮的颜色变成红色,这可以在代码视图中的控件选择下拉列表中选择RedColor这个控件,然后在右边的事件下拉列表中选择MouseDown事件(当按下鼠标时发生),这时,Visual Studio会自动生成如下代码:
Private Sub RedColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseDown
End Sub
接下来就在当前生成的代码中写入如下代码:
RedColor.BackColor = Color.FromArgb(255, 0, 0)
这句代码的作用是利用Color下的FromArgb方法来设置RGB颜色参数,在RGB颜色系统中,R代表红色,G代表绿色,B代表蓝色,根据这三种颜色的不同程度的调和,就会得到不同的颜色,如果您要得到深色的天蓝色,则可以设置FromArgb(0, 191, 255),这个颜色转换为HTML中的RGB颜色就是#00BFFF。
当然颜色还原最好是写在MouseUp事件里面,这样就不必在单击其他按钮时来还原上一次按下的按钮的颜色,在这里,为了方便描述,我们假设按钮的默认颜色为白色,也就是FromArgb方法设置为FromArgb(255, 255, 255)的时候,所标示的颜色就是白色
所以选择了RedColor按钮的MouseUp事件后,Visual Studio会自动生成下列代码:
Private Sub RedColor_MouseUp(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseUp
End Sub
MouseUp的含义是当鼠标弹起时发生,所以在这个事件就可以设置按钮颜色的还原,即添加下列代码来实现:
RedColor.BackColor = Color.FromArgb(255, 255, 255)
当然,这就编写好了一个按钮按下时变色,回弹时还原的功能,至于另外一个按钮的功能,这与这个按钮的功能一样,只是代码有一些细微的差别而已,假设这个按钮的Name属性的属性值为BlueColor,相应的代码对应如下:
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown
BlueColor.BackColor = Color.FromArgb(0, 0, 255) '蓝色的FromArgb
End Sub
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown
BlueColor.BackColor = Color.FromArgb(255, 255, 255)
End Sub
另外,为了避免代码的冗余,可以将RedColor和BlueColor的MouseUp事件进行合并,这合并后的代码如下:
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown, RedColor.MouseUp
BlueColor.BackColor = Color.FromArgb(255, 255, 255)
RedColor.BackColor = Color.FromArgb(255, 255, 255)
End Sub
当然,这个你只要分析了控件事件代码的基本结构,一切就一目了然了,控件事件代码的基本结构如下:
[作用域] Sub 事件名([参数列表]) Handles 控件事件1 [, 控件事件2, 控件事件3...]
[事件代码区域]
End Sub
如果此回答对您有帮助,别忘了采纳哦,如果没有解决您的问题,您可以在互联网上寻找更多关于此问题的解决方案,谢谢!
如果你要的是选中变色,那用checked属性就可以了。
如果你要自定义选中变的颜色,就需要过程了。
代码可以放在checkedchange事件中,通过改变displaystyle,image或者backcolor实现
1、2和3:你怎么改的,就怎么恢复默认
3:textbox1.font=new
font(
字体
名称,字体大小,
字形
),字形有加粗常规倾斜
下划线
等几种。
ProgressBar1.BackColor = Color.Beige
ProgressBar1.ForeColor = Color.Red
ProgressBar1.Value = 50
Go to Project -- [WindowsApplication] Properties
On Application Tab -- Uncheck Enable Visual Styles