原因是因为EditingControlShowing事件是在 MyBase.OnEditingControlShowing(e)这个方法中发出的。所以你在EditingControlShowing事件中改成灰色和白色之后, 在 OnEditingControlShowing方法中又被改成黑色和白色了。 所以没有效果。
解决方法是,给你自定义的MultiRow 添加一个事件,名字叫做: AfterEditingControlShowing, 这个事件在OnEditingControlShowing方法的最后一句发出。 然后在form中,处理AfterEditingControlShowing事件,在这个事件中把颜色改成灰色和白色。
相关代码如下:
第一步,给Multirow添加AfterEditingControlShowing事件,并发出这个事件:
- Protected Overrides Sub OnEditingControlShowing(ByVal e As EditingControlShowingEventArgs)
- MyBase.OnEditingControlShowing(e)
- e.CellStyle.BackColor = Color.White
- e.CellStyle.ForeColor = Color.Black
- Me.OnAfterEditingControlShowing(e)
- End Sub
- Protected Sub OnAfterEditingControlShowing(e As EditingControlShowingEventArgs)
- RaiseEvent AfterEditingControlShowing(Me, e)
- End Sub
- Public Event AfterEditingControlShowing As EventHandler(Of EditingControlShowingEventArgs)
复制代码 第二步,在form中处理AfterEditingControlShowing事件,并在事件中设成你想要的颜色。
- Private Sub myMR1_AfterEditingControlShowing(ByVal sender As Object, ByVal e As EditingControlShowingEventArgs)
- e.CellStyle.BackColor = Color.FromArgb(&H80, &H80, &H80)
- e.CellStyle.ForeColor = Color.White
- End Sub
复制代码 |