3 下拉列表中的图像和自定义控制它

本文关键字:自定义 控制 图像 下拉列表 | 更新日期: 2023-09-27 18:37:01

我是这个论坛的新手,也是C#世界中的新人,我得到了这个问题:

如何在一个下拉项中绘制3张图像,我从这个网站得到了这个代码

http://www.csharphelp.com/2006/08/combobox-with-images/

我想在我的下拉控件中添加 3 张这样的图像 [见下图],我也控制了这些图像,就像拖放并单击图像时它会做一些事情,或者类似的东西

示例图像 : http://i59.tinypic.com/2viftyf.jpg

有可能做到吗?对不起我的英语

感谢您的回答 n 重播。

3 下拉列表中的图像和自定义控制它

您可以创建一个新类,该类继承自下拉类并覆盖其 paint 函数(但这有点太高级了)。

如果您正在使用 ASP.NET 则可以查看此答案。
如果您使用的是WinForms,则必须覆盖paint函数。你可以看看这篇文章:使用 C# 组合框放置图像和字符串

编辑(在第二条评论之后):

如果我理解正确,您必须更改这些行:

if (item.ImageIndex != -1)
{
    imageList.Draw(ea.Graphics, bounds.Left, bounds.Top, item.ImageIndex);
    ea.Graphics.DrawString(item.Text, ea.Font, new
        SolidBrush(ea.ForeColor), bounds.Left+imageSize.Width, bounds.Top);
}

进入这个:

// some code
for (int i = 0; i < 3; i++)
    imageList.Draw(ea.Graphics, bounds.Left + i * imageSize.Width, bounds.Top, i);
    //            your graphics, left offset + i * image width,   top offset, image index
ea.Graphics.DrawString(item.Text, ea.Font, new
SolidBrush(ea.ForeColor), bounds.Left + 4 * imageSize.Width, bounds.Top);
//                           adjust left string offset here
// some code

首先,你用的是html吗?

Html DropDowns是select标签,不支持他的自定义类型。您可以使用其他 html 标记"伪造"此 UI,并使它们看起来像下拉列表,例如<ul><li>标记。

有一些插件可以为您执行此操作,例如剑道下拉菜单