c# richtextbox转html,用c#中的RichTextBox实现图文格式编排存储和格式化显示

最近做项目要求把一个数据库查询出来的文章按格式进行显示,包括字体大小和颜色等格式等,开始使用很多方法,在RichTextBox总不能显示字体大小、图片等格式信息,后来想到了RichTextBox可以把rtf格式的文档进行格式化显示,在此启发下,我把rtf数据保存问数据流,再在数据库中以blob类型保存,结果成功了,先分享给大家。

//保存函数

private void button1_Click(object sender, EventArgs e)

{

NameInfo nameInfo = new NameInfo();

nameInfo.name = this.comboBox1.Text;

System.IO.MemoryStream mstream = new System.IO.MemoryStream();

this.richTextBox1.SaveFile(mstream, RichTextBoxStreamType.RichText);

//将流转换成数组

byte[] bWrite = mstream.ToArray();

nameInfo.info = bWrite;

if (DbAccess.Create(nameInfo))

{

this.Close();

}

else

{

MessageBox.Show("创建失败");

}

}

//数据库存储函数

public static bool Create(NameInfo nameInfo)

{

try

{

using (SQLiteConnection conn = new SQLiteConnection(sConn))

{

conn.Open();

SQLiteCommand cmd = conn.CreateCommand();

cmd.CommandText = "INSERT INTO nameInfor(name,infor) VALUES(@name,@infor);";

cmd.Parameters.Add(new SQLiteParameter("name", nameInfo.name));

cmd.Parameters.Add(new SQLiteParameter("infor", nameInfo.info));

int i = cmd.ExecuteNonQuery();

return i == 1;

}

}

catch (Exception)

{

//Do any logging operation here if necessary

return false;

}

}

//查询并显示函数

private void button2_Click(object sender, EventArgs e)

{

EditForm editForm = new EditForm();

NameInfo nameInfo=DbAccess.GetByName(this.comboBox1. Text);

byte[] bWrite = (byte[])nameInfo.Info;

//将数组转换成stream

System.IO.MemoryStream mstream = new System.IO.MemoryStream(bWrite, false);

//将stream填充到RichTextBox

editForm.richTextBox1.LoadFile(mstream, RichTextBoxStreamType.RichText);

editForm.Show();

}

//查询数据库的函数

public static NameInfo GetByName(string name)

{

try

{

using (SQLiteConnection conn = new SQLiteConnection(sConn))

{

conn.Open();

SQLiteCommand cmd = conn.CreateCommand();

cmd.CommandText = "SELECT * FROM nameInfor WHERE name=@name;";

cmd.Parameters.Add(new SQLiteParameter("name", name));

SQLiteDataReader dr = cmd.ExecuteReader();

if (dr.Read())

{

NameInfo nameInfo = new NameInfo();

nameInfo.name = dr.GetString(0);

nameInfo.info = System.Text.Encoding.Default.GetBytes(dr.GetString(1));

return nameInfo;

}

else

return null;

}

}

catch (Exception)

{

//Do any logging operation here if necessary

return null;

}

}

}

希望对大家有用!

b5c6e30760810067aca120834044fb96.png

你的赞赏是我坚持原创的动力

赞赏

共 0 人赞赏

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值