网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > VB.NET > 颜色下拉COMBOBOX控件(vb.net)  

颜色下拉COMBOBOX控件(vb.net)

2007-03-15  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

   前不久,有位朋友发帖,寻求颜色选择的COMBOBOX  的制作方法,经过试验,整理了出来,仅供参考。 网管联盟bitsCN@com

(注:如有引用,请注明出处和作者)

中国网管联盟bitsCN.com

                                                                   --闵峰(东莞)

网管网www_bitscn_com

 Private Sub filllistboxwithcolors()
        Me.ComboBox1.DrawMode = DrawMode.OwnerDrawFixed
        Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
        Me.ComboBox1.ItemHeight = 15
        @#避免闪烁beginupdate
        Me.ComboBox1.BeginUpdate()
        ComboBox1.Items.Clear()
        Dim pi As Reflection.PropertyInfo
        For Each pi In GetType(Color).GetProperties(Reflection.BindingFlags.Public Or Reflection.BindingFlags.Static)
            Me.ComboBox1.Items.Add(pi.Name)
        Next
        ComboBox1.EndUpdate()

网管下载dl.bitscn.com

    End Sub 网管bitscn_com

 Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem
        If e.Index < 0 Then Exit Sub
      
        Dim rect As Rectangle = e.Bounds @#每一项的边框
      
        @#绘制项如果被选中则显示高亮显示背景,否则用白色
        If e.State And DrawItemState.Selected Then
            e.Graphics.FillRectangle(SystemBrushes.Highlight, rect)
        Else
            e.Graphics.FillRectangle(SystemBrushes.Window, rect)
        End If 网管联盟bitsCN_com

        Dim colorname As String = ComboBox1.Items(e.Index)
        Dim b As New SolidBrush(Color.FromName(colorname)) 网管网www.bitscn.com

        @#缩小选定项区域()
        rect.Inflate(-16, -2)
        @#填充颜色(文字对应的颜色)
        e.Graphics.FillRectangle(b, rect)
        @#绘制边框()
        e.Graphics.DrawRectangle(Pens.Black, rect)
        Dim b2 As Brush
        @#确定显示的文字的颜色()
        If CInt(b.Color.R) + CInt(b.Color.G) + CInt(b.Color.B) > 128 * 3 Then
            b2 = Brushes.Black
        Else
            b2 = Brushes.White

网管u家u.bitscn@com

        End If
        e.Graphics.DrawString(colorname, Me.ComboBox1.Font, b2, rect.X, rect.Y)

网管论坛bbs_bitsCN_com

    End Sub 网管u家u.bitsCN.com

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        filllistboxwithcolors()
    End Sub

网管bitscn_com


TAGs   控件   颜色       As   @#   Sub   End   rect   Dim   b2   ByVal   If      
 上一篇:在VB.NET中如何实现和利用SortedLists   下一篇:VB.NET编程调用讯雷下载文件
相关文章列表
颜色下拉COMBOBOX控件(vb.net) 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.Visual Basic.Net实现TCP协议
2.Visual Basic.Net中的文件操作
3.在Form中增加listbox同checkbox(图)
4.VB.NET时间日期数据处理及技巧
5.VB.NET中HOOK功能的应用(二)
6.Visual Basic .NET 中动
7.VB.NET 菜单设计初级入门
8.VB中如何修改treeview的背景色
9.VB动态调用自己的ActiveX DLL
10.颜色下拉COMBOBOX控件(vb.net)
最新推荐文章:
1.VB.NET实现窗体图标最小化到状态栏
2.如何应用VB.NET MonthCalendar控件
3.如何将一个VB.NET类分解成多个文件
4.VB.NET 拖动无边框窗体编程实例
5.VB.NET中如何扩充字符串进行固定宽度显示
6.VB.NET读取INI文件设置信息函数sdGetIniI
7.Visual Basic 10开启应用程序的新时代
8.VB.NET入门--Imports 语句
9.在Form中增加listbox同checkbox(图)
10.一步一步在VB.NET中使用抽象类
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·华为HCSE OSPF路由协议培训教材 V3.0
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血