首页 文章

Datagridview Cells使用RTF字符串进行样式设置

提问于
浏览
1

我正在开发一个 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 回答

  • 0

    忘了说我找到了正确的RTF字符串,它是以下内容:

    "{\\rtf1\\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\\cf1\\f0\\fs17 " + value + "\\cf0\\f1}";
    

    启动应用程序时,我只检查字符串是否包含RTF Headers ,然后我只是拆分文本以保留值并将样式应用于单元格 .

相关问题