• 在原生的ComboBox功能中没有属性是设置文本位置,默认位置为左对齐;想要把其中的文本设置为居中但是没有直接方法;

  • 方案一:网上流传比较多方法:
    第一步:先将combobox的DrawMode属性设置为OwnerDrawFixed;
    第二步:在comboBox的DrawItem事件方法中重新绘制item选项的位置;这里不做细说,附网址https://zhidao.baidu.com/question/143123179.html

    但是这种方法有一个弊端:居中的只是下拉项;而显示区域的文本不会居中;
    So作者又进行了第三步:给显示区域的文本进行居中;方法是
    //字符所占空间大小方法,用于求空格宽度和选项字符串宽度; Font是字符串的样式
    Graphics graphics = CreateGraphics();
    SizeF size_item = graphics.MeasureString(“ ”, Font);

    剩余宽度=(控件宽(可知)-文本宽(可知))/2;
    空格个数=剩余宽度/空格宽度;
    显示项=(空格个数*n )拼接+原文本.Trim();

问题:1、不能正确居中,把空格换成“-”就行,想不通;
2、在选择其他选项后显示文本又变成左对齐(自动把添加的空格去掉了);
3、在SelectIndex事件中给Items重新复制会导致 死循环!!!!

  • 方案二:踏过前面的坑,想直接在初始化时候就根据宽度给每个选择项都添加空格设置居中;
    上代码
         float w1 = comboBox1.Width;comboBox1.SelectedIndex=0;Graphics graphics = CreateGraphics();SizeF sizeF_sp = graphics.MeasureString(" ", comboBox1.Font);                       //空格宽度for (int i = 0; i < comboBox1.Items.Count; i++){SizeF sizeF_1 = graphics.MeasureString(comboBox1.Items[i].ToString().Trim(), comboBox1.Font);      // 选中字宽度int spmun = (int)(((w1 - sizeF_1.Width) / 2) / sizeF_sp.Width);StringBuilder sb = new StringBuilder();for (int j = 0; j < spmun; j++){sb.Append(" ");}sb.Append(comboBox1.Items[i].ToString());comboBox1.Items[i] = sb.ToString();}
  • 还有就是直接重绘,每次选择项之后,在SelectIndex_Changed 或者SelectValue_Changed中重新绘制我没 有进行尝试,有试过的朋友可以进行留言;

C# ComboBox 文本居中设置相关推荐

  1. C# winform 让ComboBox控件的文本居中方法

    在C#中,当将ComboBox的属性DropDownStyle设置为DropDownList后,ComboBox2框的文本默认是靠左对齐的. 用ComboBox1举例,让下拉文本居中,订阅事件: pu ...

  2. CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示

    CSS3文本居中显示.圆形圆角绘制.立体阴影效果设置 实例演示 ① 文本居中显示 ② 圆角设置 ③ 圆形设置 ④ 立体阴影效果设置 [ 推荐文章 ] 一篇文章快速掌握 Linux 基本命令 实例演示 ...

  3. css如何设置文本垂直居中显示,css中怎么设置文本居中?css文本垂直居中的设置方法...

    在网页设计的过程中,有时候可能为了布局美观可能需要让文本居中,那么,怎么设置文本居中呢?本篇文章将给大家介绍关于css设置文本垂直居中的方法. 首先我们要知道通过css实现元素的水平居中较为简单:对文 ...

  4. android 代码设置居右_AppCompatSpinner默认值、默认选中、更改右侧箭头颜色、选项变化监听、文本居中显示...

    1.在代码中设置spinner默认值 spinner.setSelection(2,true); 就这样一行代码,很重要 一定要加true. 2.根据值设置spinner默认选中 /** 根据值, 设 ...

  5. VSTO,PPT插件,C#,文本框TextFrame对象和TextFrame2对象在文本居中上的区别

    问题遇到的现象和发生背景 正在学习制作PPT插件,使用VSTO框架,C#语言.发现当中TextFrame对象和TextFrame2对象都表示文本框,两个对象在对文本框内容居中时,都用到了Paragra ...

  6. Plotly中4种文本类型设置详解

    作者:Lemon 来源:Python数据之道 Plotly中4种文本类型设置详解 大家好,我是 Lemon . 在过去的一段时间里,我写了几篇用 Python 的交互式可视化工具 Plotly 来演示 ...

  7. python输出文本居中_#python PIL ImageDraw text 文本居中#

    python pip pil有什么东西 你所问的问题实是属1.先参考[教程]Python中的内置的和方的模块搞懂PIL是属于第三方Python模块2.再参考:[待完善][总结]Python安装第三方的 ...

  8. WPF中GDI+图形图像的绘制:(一)绘制文本——动态设置字体、大小、颜色

    GDI+(Graphics Device Interface Plus图形设备接口加)是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息.GDI+不但在功能上比GDI 要强大很多 ...

  9. css样式标签或者文本居中方式,高度100%居中,水平垂直居中

    1.margin居中 margin: 0 auto; 上下0,左右自适应 文本居中方式: text-align: center; 有height高度的居中方式:line-height: 100px; ...

  10. drawstring 文本居中_c#-Graphics.DrawString()的中心文本输出

    c#-Graphics.DrawString()的中心文本输出 我正在使用.NETCF(Windows Mobile)Graphics类和DrawString()方法将单个字符呈现到屏幕. 问题是我似 ...

最新文章

  1. 军工企业敏捷项目管理
  2. 深入理解 Laravel Eloquent(三)——模型间关系(关联)
  3. 比特币现金(BCH)社交平台推出新玩法
  4. python中的路径问题汇总
  5. zabbix监控 openstack 的实例的资源使用情况
  6. [js] 如何判断两个对象相等?
  7. 蓝懿iOS培训日志22 图册
  8. linux 按序号创建文件夹,在Linux终端中创建M3U播放列表的方法
  9. 用垃圾建设台湾海峡陆桥的主意是否可行
  10. 关于Navicat Premium 12注册机被windows病毒防护自动删除的问题解决
  11. 折叠屏,vivo的高端打手?
  12. gwt php,java – 启动GWT项目的PHP程序员的任何好技巧?
  13. java 读取小数位数_java如何获取一个double的小数位数
  14. WTL入门(二) WTL简介
  15. mac误删除文件恢复,mac文件丢失如何找回
  16. 图嵌入中节点如何映射到向量
  17. 将代码提交到github上
  18. c语言查表程序,C语言查表法问题
  19. C语言 string.h头文件
  20. GraalVM Enterprise Edition 22.3.0 企业版安装

热门文章

  1. 北京周边骑行路线总结
  2. 28个Java开发常用规范技巧总结
  3. 指数基金投资指南——阅读笔记
  4. iOS部分版本默认没有允许 app 访问蜂窝移动数据
  5. Spring 创建切面
  6. HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍
  7. linux挂马检测,检测网站挂马程序(Python)
  8. Java字符串使用及运算符详解
  9. C#时间格式转换时间戳
  10. 大学计算机协会大一面试,大一学生社团面试自我介绍