我正在尝试在c#中创建一个高级文本编辑器。 我目前有一个填充了字体名称的toolStripComboBox。当用户点击名称时,应该将SelectionFont设置为该字体。但是,它似乎没有任何效果。 (我也有一个字体大小,它完美地工作)
以下是字体应用的代码:
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Font nf = new Font(toolStripComboBox1.SelectedIndex.ToString(), getCntDocument.SelectionFont.Size, getCurrentDocument.SelectionFont.Style);
getCurrentDocument.SelectionFont = nf;
}
字体直接从InstalledFontFamilies系统类添加到框中:
private void getFontCollection()
{
InstalledFontCollection ifonts = new InstalledFontCollection();
foreach (FontFamily ff in ifonts.Families)
{
toolStripComboBox1.Items.Add(ff.Name);
}
toolStripComboBox1.SelectedIndex = 0;
}
此外,getCurrentDocument如下:
private RichTextBox getCurrentDocument
{
get
{
return (RichTextBox)tabControl1.SelectedTab.Controls["Body"];
}
}
其他信息:
private void formMain_Load(object sender, EventArgs e)
{
string[] args = System.Environment.GetCommandLineArgs();
string filePath = args[1];
filePath.Replace("\\\\", "\\");
addTab();
getFontCollection();
setFontSizes();
getCurrentDocument.Text = (File.ReadAllText(filePath));
}
我得到unsupportedFormatException
有人可以告诉我哪里出错了吗? 感谢
答案 0 :(得分:-1)
所以我找到了答案,结果证明我没有以正确的方式获取文字......
我不得不使用ToolStripComboBox.ComboBox
,而是首先使用toolStripComboBox1.ComboBox.GetItemText(toolStripComboBox1.ComboBox.SelectedItem)
变量将ts组合框转换为常规组合框。这样我可以使用time.sleep(5)
感谢大家的帮助!