gpt4 book ai didi

c# - 检索选定 FontFamily 的每个字符

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:33 25 4
gpt4 key购买 nike

我正在尝试创建一个允许用户选择字体系列的控件,然后从该字体系列中选择一个字符。下面是我要实现的目标的示例。

enter image description here

用字体系列列表填充组合框非常简单:

FontFamilyCB.DisplayMember = "Name";
foreach (System.Drawing.FontFamily font in System.Drawing.FontFamily.Families)
{
FontFamilyCB.Items.Add(font);
}

但我如何遍历并检索给定字体系列中的每个特定字符?

我将在“DataGridViewButtonCell”上显示每个字符。

最佳答案

下面是一个如何通过将 int 转换为 char 来显示字符的示例。如果我们在一个循环中执行此操作(并进行足够多的迭代),我们将最终显示所有字符。不幸的是,我认为有超过 100,000 个 Unicode 字符,这可能比您想显示的要多(而且并非所有字符都会显示每种字体的内容)。

我会留给您决定您真正想要显示哪些按钮,但这里有一个示例,它在按钮网格中打印出前 3,750 (75 x 50) 个按钮。 *请注意,随着您添加的控件越多,加载时间会越来越慢。

只需创建一个新的 WinForms 项目并将这段代码放入 Form_Load 事件中。您可以使用定义的变量调整网格大小(以及加载时间):

private void Form1_Load(object sender, EventArgs e)
{
int gridWidth = 75;
int gridHeight = 50;
int controlSize = 20;

int row = 0;

for (int i = 1; i < gridWidth * gridHeight; i++)
{
var value = ((char) i).ToString();

Controls.Add(new Button
{
Left = i % gridWidth * controlSize,
Top = row * controlSize,
Width = controlSize,
Height = controlSize,
Text = value
});

if (i % gridWidth == 0) row++;
}
}

输出

enter image description here

关于c# - 检索选定 FontFamily 的每个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51988715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com