我制作了一个程序,可以使用富文本框将格式化(更改字体、大小和颜色)数据添加到我的 MS Access 数据库中,还有一个普通文本框来存储主题,当您单击主题时加载到列表框中它应该在另一个richtextbox中显示格式化文本的列表框,它完美地显示纯文本,但是只要单击带有格式化文本的主题,它就会显示文本的格式:
{\rtf\ansi\ansicpg 1252\deflang7177{\f0\fnil\fcharset 0 Microsoft Sans serif;}}
{\colortbl;\red0\green255\blue128;}
\viewkind4\uc 1\pard\cf1\fs17 now\cf0\par
}
我的代码:
private void listItem_SelectedIndexChanged(object sender, EventArgs e)
{
string connstring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Temp\SumWizz.accdb";
OleDbConnection conn = new OleDbConnection(connstring);
string query = "SELECT * FROM Items WHERE Name = '" + listItem.Text + "'";
OleDbCommand cmd = new OleDbCommand(query, conn);
OleDbDataReader reader;
try
{
conn.Open();
reader = cmd.ExecuteReader();
// reads the data and fills the combo box and listbox
while (reader.Read())
{
string Sdetail = reader.GetString(2);
richItem.Text = Sdetail;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
conn.Close();
}
我已将richItem(我的richtextbox)更改为richItem.rtf = Sdetail; 然后它完美地显示了格式化的文本,但是当使用纯文本选择主题时,它说格式无效,我必须在另外 2 个地方使用它。是否可以先检查文本是否具有 rtf 属性或任何其他方式以使其同时显示纯文本和格式化文本?