突出显示组合框中的特定项目

2023-12-22

我有一个场景,我用模板名称填充组合框。在这些模板中,有一个是默认模板。我想在填充组合框时突出显示默认模板名称(以便用户知道其中哪一项是默认的)。可以这样做吗?如果是的话怎么办?我正在使用 C# 2.0 中的 Windows 窗体。


这在一定程度上取决于您想要如何突出显示该项目。如果您想以粗体呈现默认项目的文本,您可以像这样实现(为此,您需要设置DrawMode组合框的OwnerDrawFixed,当然还有将 DrawItem 事件连接到事件处理程序):

我已经用模板对象填充了组合框,定义如下:

private class Template
{
    public string Name { get; set; }
    public bool IsDefault { get; set; }

    public override string ToString()
    {
        return this.Name;
    }
}

...DrawItem 事件的实现如下:

private void ComboBox_DrawItem(object sender, DrawItemEventArgs e)
{
    if (e.Index < 0)
    {
        return;
    }
    Template template = comboBox1.Items[e.Index] as Template;
    if (template != null)
    {

        Font font = comboBox1.Font;
        Brush backgroundColor;
        Brush textColor;

        if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
        {
            backgroundColor = SystemBrushes.Highlight;
            textColor = SystemBrushes.HighlightText;
        }
        else
        {
            backgroundColor = SystemBrushes.Window;
            textColor = SystemBrushes.WindowText;
        }
        if (template.IsDefault)
        {
            font = new Font(font, FontStyle.Bold);
        }
        e.Graphics.FillRectangle(backgroundColor, e.Bounds);
        e.Graphics.DrawString(template.Name, font, textColor, e.Bounds);

    }
}

我希望这应该能让你朝着正确的方向前进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

突出显示组合框中的特定项目 的相关文章

  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

    我注意到CallContext LogicalSetData LogicalGetData不按照我期望的方式工作 内部设置的值async方法得到恢复即使没有异步或任何类型的线程切换 无论如何 这是一个简单的例子 using System u
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 创建类型为 java.io.File 的 bean 时出错 [构造函数参数类型不明确]

    我有以下 spring bean 配置
  • JavaScript 与 Java 毫无关系,为什么叫 JavaScript? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 既然JavaScript不是由Java衍生而来 为什么它的名字中带有 Java 呢 From an 面试 http www infoworld com
  • 如何从外部命令行调用可可应用程序?

    我想使用带有参数的命令行来调用我的cocoa应用程序 但是在我的cocoa应用程序中 如何接收参数 这个参数是一个文件路径 非常感谢 整洁的事情 使用NSUserDefaults 如果你这样做 MyCocoaApp argument pat
  • 如何从 JBuilder 视图委托给模型的 to_builder 方法?

    假设我有一个 Person 类和一个 Gang 类 class Person belongs to gang attr accessible name secret def to builder Jbuilder new do app pe
  • Grails:使用 Spring Security 插件进行 Commentable 的用户评估器

    我正在尝试将可评论插件与 Spring Security 一起使用 我无法写出正确的 grails commentable poster evaluator 我尝试了 User get springSecurityService princ
  • 无法在 Chart.js 中设置全局选项

    我正在使用以下代码在 Chart js 中设置全局选项 Chart defaults global animationSteps 30 tooltipCornerRadius 0 var ctx document getElementByI
  • 将动态代码添加到 Perl 应用程序的最佳方法

    我知道这个问题的具体实例之前已经得到回答 如何在不使用 eval 的情况下动态包含 Perl 模块 https stackoverflow com questions 1917261 how can i dynamically includ
  • 替换测试中的特定模块

    我正在使用 Jest 测试我的 React Redux 应用程序 作为 API 调用的一部分 我正在导入一个 fetch 模块cross fetch 我想覆盖或替换它fetch mock 这是我的文件结构 Action js import
  • Java 中的 WebSockets 生产就绪服务器?

    EDIT 删除了对 C 的引用 因为唯一接受的答案是关于 Java 的 如果有人需要有关 C 中 websocket 服务器实现的信息 请提出一个新问题 您知道用 Java 创建 WebSockets 服务器的 生产就绪 框架吗 我找到了一
  • 它是什么意思,或者Cg==是什么

    有人可以告诉我什么吗Cg 意思是 我只知道它与 Base64 有关 我已经搜索过 但我仍然没有正确的答案或不知道它是什么 而且我对base64没有太多了解 Cg 是最新位置的换行符的base64编码 所以如果你想编码ABC你会得到QUJD
  • 毕加索可以帮我排队吗?

    关于毕加索的行为 有一个我不知道的关键点 想象一下 您正在显示包含十个项目的幻灯片 比如说 他们每人在屏幕上停留十秒钟 理想的行为是这样的 在幻灯片放映开始时 我只需执行以下操作 picasso get url1 picasso get u
  • Git 返回“无法运行重新打包”和“膨胀返回”错误

    我遇到了存储在 GitLab 上的 Git 存储库的问题 这似乎是一个仅影响此特定存储库的存储库问题 因为 GitLab 上托管的所有其他项目都工作正常 我似乎可以亲自使用 GitKraken 推送 拉取和签出分支 但是当我尝试从 Git
  • Alembic 可以自动生成列更改吗?

    我能够使用alembic autogenerate用于添加 删除列时 但是 当我想将 url 列从 200 个字符修改为 2000 个字符时 它不会检测到更改 我如何制作 Alembic 使用 SQLAlchemy 检测更改并自动生成模型各
  • 如何从java中的字符串中获取正确的阿拉伯字符(正确的形式)?

    我试图计算java中阿拉伯字符串中字符的宽度 但有时我无法获得正确的字符 如果您不知道阿拉伯字符可以根据它们在单词中的位置进行连接 并且每个变体都有不同的十六进制代码 https en wikipedia org wiki Arabic s
  • 在 Silverlight 3.0 中结合 .NET RIA 服务和 MVVM

    在 Silverlight 3 0 中使用 NET RIA 服务和 MVVM 时 RIA 服务中的元数据类型与 MVVM 模式中的 ViewModel 之间有区别吗 这些是同一件事还是应该分开 元数据类型是部分实体类的密封内部类 那里似乎没
  • Facebook JavaScript SDK 在 FB.login 调用后不会在 chrome 中设置访问令牌 cookie

    我正在使用 Facebook JavaScript SDK 来实现我的网站的登录 我已经可以在 Safari 和 Firefox 上使用它 但不能在 Chrome 上使用 调用 FB login 方法后 我可以从 Facebook 检索访问
  • PCL 中的 xamarin securestring 等效项

    SecureString 与 PCL 不友好 我知道这个问题可以使用依赖注入来解决 但我不想这样做 而是想在 PCL 中使用与 SecureString 等效的东西 但到目前为止我还找不到任何其他类或框架 System Security 几
  • protobuf-net 枚举序列化

    为了使用 protobuf net 序列化枚举 需要做什么 当序列化具有枚举属性的类时 我收到以下错误 如果从属性声明中删除 DataMember 属性 则它可以正常工作 System InvalidOperationException 仅
  • 仅使用互斥锁实现读/写锁?

    我试图仅使用互斥锁来实现读 写锁 仅供学习 正当我以为我已经涵盖了所有极端情况 因为程序可以处理各种组合 时 我意识到 我忽略了一个事实 因为它在 ubuntu 中工作 互斥体应该由线程的所有者释放 下面是我的实现 class rw loc
  • 突出显示组合框中的特定项目

    我有一个场景 我用模板名称填充组合框 在这些模板中 有一个是默认模板 我想在填充组合框时突出显示默认模板名称 以便用户知道其中哪一项是默认的 可以这样做吗 如果是的话怎么办 我正在使用 C 2 0 中的 Windows 窗体 这在一定程度上