作者:Niels Penneman   翻译:小新0574

原文链接:http://www.codeproject.com/cs/combobox/ImageCombo_NET.asp

CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)

Introduction

When I started programming in .NET, I wondered where the ImageCombo control had gone (I used to program in VB6). The .NET Framework didn't seem to have this functionality built-in, but it's very easy to add it.

当我开始使用.NET编程后,我感到很惊讶,ImageCombo 控件去哪了呢?(我以前使用VB6编程).NET框架似乎没有内建这个功能,不过要构造它很简单。

Using the code

The code consists of two classes: ImageCombo and ImageComboItem. If you want to use them in C#, just copy them into your project; for other .NET languages, you can add a reference to the library.

代码由两个类组成:ImageCombo ImageComboItem。如果你想在你的C#代码里使用它们,只要把它们复制到你的工程里就行了;对于其他.NET语言,你只要增加一个对这个类库的引用就行了。(译注:把这两个类编译成dll,在工程里引用就行了)

The control inherits from ComboBox and introduces one new member: the ImageList property, which doesn't require any further explanation. The control is owner drawn and there is a custom drawing method defined, so don't change its DrawMode property if you want to see the images.

这个控件继承自ComboBox ,增加了一个新的成员:ImageList 属性,这不需要多做解释了吧。这个控件是自绘的,控件定义一个自定义的绘制方法,所以如果你想看到图像,就不要改变它的DrawMode属性。

The ImageComboItem class inherits from Object. You can set a customForeColor and it has a Mark property which determines if the item is shown in bold font style (does not work if owner font is already bold).

ImageComboItem类继承自Object。你可以设置一个自己的ForeColor ,这个类有一个Mark属性,这个属性决定是否项使用粗体显示。(如果项已经是粗体了,这个属性就不会起作用)。

To add an item to an ImageCombo with text "Icon 0" and image index 0, use the following code:

要增加一个使用文本“Icon 0”和(ImageList里)索引值为0的图像的ImageCombo (项)。使用一下代码:

CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)imageCombo.Items.Add(new ImageComboItem("Icon 0"0));

Code listing: ImageCombo class

CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)using System;
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
using System.Drawing;
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
namespace System.Windows.Forms
}

Code listing: ImageComboItem class

CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)using System;
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
using System.Drawing;
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)
namespace System.Windows.Forms
}

About Niels Penneman

CodeProject - Where's the ImageCombo control?(重用已有控件,定制自己的控件的一个例子)

 

 I have learnt to program in VB3 when I was about 10. I also learnt Pascal, I moved on to VB5 and later VB6, tried some Visual J++ (1.1) and I have little knowledge of ANSI C. Nowadays I mostly use VB.NET and C# .NET.

     

 我在大概10岁的时候使用VB3开始学习编程。我也学了Pascal,转移到VB5,然后VB6,尝试了一些Visual J++ (1.1),我几乎不怎么了解ANSI C。现在我主要使用VB.NETC#.NET

 

I am currently studying science and maths in the last year of secondary education (maybe a weird way to explain it but it's because I don't know how YOUR educational system is organized ).

 

我现在在学习初中(secondary education)最后一年的自然科学与数学的课程(也许这样解释显得有些奇怪,但是是因为我不知道你们的教育体系是怎样组织的)。

相关文章:

  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-07-03
  • 2022-12-23
  • 2021-07-19
  • 2021-11-04
  • 2021-08-06
猜你喜欢
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2021-09-15
  • 2021-11-24
  • 2021-07-23
  • 2022-12-23
相关资源
相似解决方案