欣云 发表于 2007-1-5 12:46:02

辛苦一星期编程的成果 =.=||

为了发表你的文章,你跑了很长的路,花去了乘车费 19 思明论坛!

   下次努力哦!……辛苦了一个星期,没编出来仕么象样的程序~~~烟倒烧了不少~~5天12包烟~~~一天两包还不够~~:L 吸烟只是为了打发想问题时的无聊~~:Q

欣云 发表于 2007-1-5 12:46:33

呵呵,也不能让大家失望啊~~发点实用的给一起学习C#的朋友们~~

重绘LISTBOX

感觉重新绘制一遍比默认样式好看多了

在窗口中拖一个ListBox控件~~设置它的DrawMode属性为OwnerDrawVariable

然后要添加两个事件~~~DrawItem事件跟MeasureItem事件

下面贴出我的代码

      private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
      {
            e.DrawBackground();
            Rectangle r = new Rectangle(0, 0, listBox1.Width, 100);
            bool selected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected);
            LinearGradientBrush lgb = null;
            if (!selected)
                lgb = new LinearGradientBrush(r, Color.Red, Color.Yellow, LinearGradientMode.Horizontal);
            else
                lgb = new LinearGradientBrush(r, Color.Cyan, Color.White, LinearGradientMode.Horizontal);
            e.Graphics.FillRectangle(lgb, e.Bounds);
            e.Graphics.DrawRectangle(SystemPens.WindowText, e.Bounds);
            Rectangle r2 = e.Bounds;
            string displayText = (string)listBox1.Items;
            SizeF size = e.Graphics.MeasureString(displayText, this.Font);
            r2.Y = (int)(r2.Height / 2) - (int)(size.Height / 2) + e.Bounds.Y;
            r2.X = 2;
            e.Graphics.DrawString(displayText, this.Font, Brushes.Black, r2);
            e.DrawFocusRectangle();
      }
      private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
      {
            string displayText = (string)listBox1.Items;
            SizeF size = e.Graphics.MeasureString(displayText, this.Font);
            size.Height += 10;
            e.ItemHeight = (int)size.Height;
      }



附件为效果图~~~没用到GDI+的高深知识就能改善控件的外观样式~~~效果不错吧````

[ 本帖最后由 欣云 于 2007-1-5 12:54 编辑 ]

604xinxin 发表于 2007-1-5 12:47:48

做生意不得门路,亏了 10% 的本钱!

   下次努力哦!……:L :L ................

欣云 发表于 2007-1-5 12:56:09

有人捡到钱把你当成失主送给了你,收到 300 思明论坛,热心值减 2 !

   下次努力哦!……顶下顶下~~~哈哈~~~~:lol 现在没烟了~~郁闷~~~抽烟的钱比吃饭的还要多~~~:Q

情断柳江河 发表于 2007-1-5 12:56:11

你中了彩票一等奖,获得奖金 3888 思明论坛!

   下次努力哦!……顶你~```:lol

欣云 发表于 2007-1-5 12:58:05

我再顶~顶到飞去`~~以后出去就没得顶了~~~~:lol

xYx 发表于 2007-1-5 13:04:01

:L :L :( :(

情断柳江河 发表于 2007-1-5 13:04:39

财神爷今日光临思明论坛,大派财运,你的财产增加了 10% !

   下次努力哦!……你那么厉害
可以在外面入侵思明论坛灌水的啊:lol :lol

欣云 发表于 2007-1-5 13:07:40

不好意思,小偷又光顾你家,带走了你 10% 的财产!(人民政府再次提醒大家有钱要存银行)

   下次努力哦!……原帖由 情断柳江河 于 2007-1-5 13:04 发表
你那么厉害
可以在外面入侵思明论坛灌水的啊:lol :lol

既已离去`~~就不该心存留恋~~~~~~~~~~~~~~~:L

情断柳江河 发表于 2007-1-5 13:09:35

心仪你的人为你送上鲜花,热心值加 20 !

   下次努力哦!……呵呵
:handshake :lol :lol

家有一猪 发表于 2007-1-5 13:55:04

:lol :lol :lol :lol :lol :victory:

A_Fenzai 发表于 2007-1-5 13:58:46

今日思明论坛电影院派发嘉宾卷,你将入场卷变卖后得到 149 思明论坛!

   下次努力哦!……ding .,,,,,,,,,,,,,,,,,,,,师兄我来帮你顶!

情断柳江河 发表于 2007-1-5 15:02:51

我再顶:lol :lol :lol

因为帅烦 发表于 2007-1-12 16:20:58

无缘无故有名人请你吃饭,还赠送 205 思明论坛,热心值加 3 !

   下次努力哦!……GDI 也可以在网页里面做验证码 还能玩出很多花样呢

零度心情 发表于 2007-1-13 14:50:18

你的跑车有了小小损坏,花去你 879 思明论坛的修理费!

   下次努力哦!……哎~~做程序真耗国家的香烟啊~~:Q
页: [1] 2
查看完整版本: 辛苦一星期编程的成果 =.=||