当前位置: 移动技术网 > IT编程>开发语言>.net > 如何消除点击按钮时周围出现的白线?

如何消除点击按钮时周围出现的白线?

2019年01月10日  | 移动技术网IT编程  | 我要评论

总裁爱吻小小妻,joeyilan,双色球预测最准确neiba

如何消除点击按钮时周围出现的白线?

使用语言:vb.net
原网站:


问题描述

在我用鼠标点击,然后弹出一个文件选择对话框前,按钮没有异常,但之后它的周围出现了一圈白线。
screenshot
只有一句代码openfiledialog1.showdialog()
按钮的flatstyle属性为flatbackgroundimage是一张png格式的图像。
白线出现后,点击窗体它就会消除。


解答

一个简单的办法是把按钮的flatappearance.bordercolor属性设置成parent.backcolor,即它的“容器”的背景色。这会重写焦点框。mouseup事件可以被用来设置其值,它将在新窗口出现前被引发。

private sub somebutton_mouseup(sender as object, e as mouseeventargs) handles somebutton.mouseup
    dim ctl as button = directcast(sender, button)
    ctl.flatappearance.bordercolor = ctl.parent.backcolor
end sub

使用control.paint事件,我们也可以更改control.backcolor属性来重绘边框,也可以用controlpaint类中的drawborder方法(比使用buttonrenderer类简单)

private sub somebutton_paint(sender as object, e as painteventargs) handles somebutton.paint
    dim ctl as button = directcast(sender, button)
    controlpaint.drawborder(e.graphics, ctl.clientrectangle, ctl.backcolor, buttonborderstyle.solid)
end sub

或者,也可以自己重绘控件的边框:
(要注意的是clientrectanglewidthheight必须被缩小1像素)

private sub somebutton_paint(sender as object, e as painteventargs) handles somebutton.paint
    dim ctl as control = directcast(sender, control)
    dim r as rectangle = ctl.clientrectangle
    using pen as pen = new pen(ctl.backcolor, 1)
        e.graphics.drawrectangle(pen, r.x, r.y, r.width - 1, r.height - 1)
    end using
end sub

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网