我正在开发一个 C# 应用程序(windows窗体),它有一个保存在数据库中的DataGridView(每个单元格被视为一个字符串) . 我想要做的是添加一个按钮,使文本(或单元格BackColor)着色,这样当我打印(在纸上)我的数据库内容时,颜色保持不变 .
我的想法是将单元格字符串转换为RTF,但我真的不知道如何为单元格 do not support RTF natively 执行此操作 . 我想尽量避免将DataGridView更改为丰富的DataGridView,所以我想知道我是否可以在保存彩色单元格时添加此字符串:
“{\ rtf1 \ fbidis \ ansi \ ansicpg1252 \ deff0 \ deflang1036 {\ fonttbl {\ f0 \ fswiss \ fprq2 \ fcharset0 Microsoft Sans Serif;} {\ f1 \ fnil \ fcharset0 Microsoft Sans Serif;}} {\ colortbl; \ red255 \ green0 \ blue0;} \ viewkind4 \ uc1 \ pard \ ltrpar \ cf1 \ f0 \ fs17“cell.Value.ToString()”\ cf0 \ f1 \ par“
棘手的是,当我打开我的应用程序时,我想读取每个单元格的字符串,并将RTF样式应用于单元格样式 . 例如,我保存一个包含“hello”的红色单元格,当我打开我的应用程序时,我希望单元格为红色,但是当我打印(再次打印纸张)时,我希望文本为红色(因此将RTF解析为单独打开格式中的文字) .
有任何想法吗?提前致谢 . :)
1 回答
忘了说我找到了正确的RTF字符串,它是以下内容:
启动应用程序时,我只检查字符串是否包含RTF Headers ,然后我只是拆分文本以保留值并将样式应用于单元格 .