C# ComboBox 文本居中设置
在原生的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 文本居中设置相关推荐
- C# winform 让ComboBox控件的文本居中方法
在C#中,当将ComboBox的属性DropDownStyle设置为DropDownList后,ComboBox2框的文本默认是靠左对齐的. 用ComboBox1举例,让下拉文本居中,订阅事件: pu ...
- CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
CSS3文本居中显示.圆形圆角绘制.立体阴影效果设置 实例演示 ① 文本居中显示 ② 圆角设置 ③ 圆形设置 ④ 立体阴影效果设置 [ 推荐文章 ] 一篇文章快速掌握 Linux 基本命令 实例演示 ...
- css如何设置文本垂直居中显示,css中怎么设置文本居中?css文本垂直居中的设置方法...
在网页设计的过程中,有时候可能为了布局美观可能需要让文本居中,那么,怎么设置文本居中呢?本篇文章将给大家介绍关于css设置文本垂直居中的方法. 首先我们要知道通过css实现元素的水平居中较为简单:对文 ...
- android 代码设置居右_AppCompatSpinner默认值、默认选中、更改右侧箭头颜色、选项变化监听、文本居中显示...
1.在代码中设置spinner默认值 spinner.setSelection(2,true); 就这样一行代码,很重要 一定要加true. 2.根据值设置spinner默认选中 /** 根据值, 设 ...
- VSTO,PPT插件,C#,文本框TextFrame对象和TextFrame2对象在文本居中上的区别
问题遇到的现象和发生背景 正在学习制作PPT插件,使用VSTO框架,C#语言.发现当中TextFrame对象和TextFrame2对象都表示文本框,两个对象在对文本框内容居中时,都用到了Paragra ...
- Plotly中4种文本类型设置详解
作者:Lemon 来源:Python数据之道 Plotly中4种文本类型设置详解 大家好,我是 Lemon . 在过去的一段时间里,我写了几篇用 Python 的交互式可视化工具 Plotly 来演示 ...
- python输出文本居中_#python PIL ImageDraw text 文本居中#
python pip pil有什么东西 你所问的问题实是属1.先参考[教程]Python中的内置的和方的模块搞懂PIL是属于第三方Python模块2.再参考:[待完善][总结]Python安装第三方的 ...
- WPF中GDI+图形图像的绘制:(一)绘制文本——动态设置字体、大小、颜色
GDI+(Graphics Device Interface Plus图形设备接口加)是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息.GDI+不但在功能上比GDI 要强大很多 ...
- css样式标签或者文本居中方式,高度100%居中,水平垂直居中
1.margin居中 margin: 0 auto; 上下0,左右自适应 文本居中方式: text-align: center; 有height高度的居中方式:line-height: 100px; ...
- drawstring 文本居中_c#-Graphics.DrawString()的中心文本输出
c#-Graphics.DrawString()的中心文本输出 我正在使用.NETCF(Windows Mobile)Graphics类和DrawString()方法将单个字符呈现到屏幕. 问题是我似 ...
最新文章
- 军工企业敏捷项目管理
- 深入理解 Laravel Eloquent(三)——模型间关系(关联)
- 比特币现金(BCH)社交平台推出新玩法
- python中的路径问题汇总
- zabbix监控 openstack 的实例的资源使用情况
- [js] 如何判断两个对象相等?
- 蓝懿iOS培训日志22 图册
- linux 按序号创建文件夹,在Linux终端中创建M3U播放列表的方法
- 用垃圾建设台湾海峡陆桥的主意是否可行
- 关于Navicat Premium 12注册机被windows病毒防护自动删除的问题解决
- 折叠屏,vivo的高端打手?
- gwt php,java – 启动GWT项目的PHP程序员的任何好技巧?
- java 读取小数位数_java如何获取一个double的小数位数
- WTL入门(二) WTL简介
- mac误删除文件恢复,mac文件丢失如何找回
- 图嵌入中节点如何映射到向量
- 将代码提交到github上
- c语言查表程序,C语言查表法问题
- C语言 string.h头文件
- GraalVM Enterprise Edition 22.3.0 企业版安装