c# winform中的字体问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# winform中的字体问题?相关的知识,希望对你有一定的参考价值。

c#开发的程序,如果在所运行的机器上没有安装相应的字体是不是就不能显示字体了,比如原来在开发的时候定义了字体是微软雅黑,而运行的时候机上没有安装这种字体,是不是就不能正常显示了,有什么办法吗?

如果没有它会使用默认字体来代替,一般除了影响显示效果,不会有太大问题,不过也有例外,比如说英语音标字体,如果客户机不带有你设定的这种字体,就不能正常显示了。
解决方法是(1)你提供用户手动安装,(2)或者在打包程序时使用打包工具(比如installshield)连同字体一起打包,在安装程序时同时进行字体安装(3)另外的方法是你在编写程序时,使用字体文件来加载字体,这样可以避免安装字体。

System.Drawing.Text.PrivateFontCollection pfc = new System.Drawing.Text.PrivateFontCollection();
pfc.AddFontFile(fontFile);//如果有多个字体文件可以继续添加
Font myFont = new Font(pfc.Families[0], 20f, FontStyle.Regular, GraphicsUnit.Point, 0);

myFont就是通过字体文件创建的字体。

参考资料:http://www.baidu.com/s?wd=C%23+%CD%A8%B9%FD%D7%D6%CC%E5%CE%C4%BC%FE%B4%B4%BD%A8%D7%D6%CC%E5&n=2

参考技术A 楼主想的还真多,既然如此,你不如这样想,很多外国软件拿到中国上卖都会汉化,VS就是这样,发行时注意下不同客户发行不同的版本不就行了嘛,如果是汉字,你尽量选择大多数机器上都会装的字体,如宋体,其实也没必要担心那么多,像这些字体,所装的系统大多数都会带,除非你是跨平台,做嵌入式的编程,这个问题得慎重本回答被提问者采纳 参考技术B 你可以装这种字体啊,也可以在WindowFroms中改字体! 参考技术C 是的,你可以把你使用的字体给打包到里面就可以了。

关于C# winform调用另一个窗口中的控件的问题

在窗口A(命名为aa)中有一个combobox(命名为cmb_district),要在窗口B(命名为bb)调用窗口A中的combobox,所以我在窗口B中写下了这语句:“ComboBox district = (ComboBox)Application.OpenForms[“aa”].Controls["cmb_district"];”,发觉是可以调用得到窗口A中的cmb_district;但是当我在窗口A中创建了groupbox1,然后将cmb_district拉到groupbox1里面时,发觉在窗口B中的那句语句就不管用了,请问应该要如何修改该语句呢?请各路英雄能够拔刀相助,在下不胜感激!!!

参考技术A 在A中独立创建一个公共函数,就是在命名空间自己写一个公共函数。那样就可以在别的窗口的调用。如果不知道在哪里创建,就试着自己调整函数的位置…试试看,希望能帮到你! 参考技术B ComboBox district = (ComboBox)Application.OpenForms[“aa”].Controls["groupbox1"].Controls["cmb_district"];本回答被提问者采纳

以上是关于c# winform中的字体问题?的主要内容,如果未能解决你的问题,请参考以下文章

c# winform的dateTimePicker控件的日历面板的字体怎么调大?

c#中如何设置listbox各选项中的字体

C# WinForm - 在标签上切换背景图像

在C# winform中怎么设置文本框中部分字体的颜色,即根据条件在编程中改变文本框中部分字体的颜色

C# WinForms TextBox 等的垂直对齐

无法更改 WinForms MonthCalendar 控件中的字体