但我希望能将文本中设置的字体大小和颜色信息也保存起来,读取的时候还能够还原。
这样要怎么才能实现????
注:整个问件不一定使用的是同一种字体和颜色,有可能不同的字,不同的行使用的字体和
颜色都不同,希望能保存所有设置的这些信息!!!
找了好长时间都没找到什么可用的办法,拜托大家进来帮帮忙吧,先谢过了!!!!
21 个解决方案
#1
记得以前学过这个。
似乎得调用windows api,写入注册表信息或是INI信息
似乎得调用windows api,写入注册表信息或是INI信息
#2
可以考虑用注册表来存储。
颜色设置调用控件colorDialog,通过方法写入注册表。
using Microsoft.Win32;//用到Registry和RegistryKey两个类
//写入注册表
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
颜色设置调用控件colorDialog,通过方法写入注册表。
using Microsoft.Win32;//用到Registry和RegistryKey两个类
//写入注册表
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
#3
保存成rtf文件啊,是带格式的
#4
// save
richTextBox.SaveFile(@"c:\mytxt.rtf");
// load
string rtf = System.IO.File.ReadAllText( @"c:\mytxt.rft" );
richTextBox = rtf;
#5
private bool ReadRegistry()
{
//依次打开SoftWareKey和ChoseColor子键
RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");
RegistryKey choseColorKey = softwareKey.OpenSubKey("ChoseColor");
if (choseColorKey == null)
return false;
else
{
RegistryKey colorKey = choseColorKey.OpenSubKey("Color");
if (colorKey == null)
return false;
else
{
try
{
listBox1.Items.Add("成功打开键:" + colorKey.ToString());
//读取注册表中Color键的各个键值的值
int redComponet = (int)colorKey.GetValue("Red");
int greenComponent = (int)colorKey.GetValue("Green");
int blueComponent = (int)colorKey.GetValue("Blue");
BackColor = Color.FromArgb(redComponet, greenComponent, blueComponent);
//遍历由指定子键拥有的键值名称组成的字符串数组
foreach (string sValName in colorKey.GetValueNames())
{
listBox1.Items.Add(sValName + "分量值:" + colorKey.GetValue(sValName));
}
return true;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
return false;
}
}
}
}
{
//依次打开SoftWareKey和ChoseColor子键
RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");
RegistryKey choseColorKey = softwareKey.OpenSubKey("ChoseColor");
if (choseColorKey == null)
return false;
else
{
RegistryKey colorKey = choseColorKey.OpenSubKey("Color");
if (colorKey == null)
return false;
else
{
try
{
listBox1.Items.Add("成功打开键:" + colorKey.ToString());
//读取注册表中Color键的各个键值的值
int redComponet = (int)colorKey.GetValue("Red");
int greenComponent = (int)colorKey.GetValue("Green");
int blueComponent = (int)colorKey.GetValue("Blue");
BackColor = Color.FromArgb(redComponet, greenComponent, blueComponent);
//遍历由指定子键拥有的键值名称组成的字符串数组
foreach (string sValName in colorKey.GetValueNames())
{
listBox1.Items.Add(sValName + "分量值:" + colorKey.GetValue(sValName));
}
return true;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
return false;
}
}
}
}
#6
调用SaveFile("xxx.rtf"),保存为rtf文件
调用LoadFile("xxx.rtf"),从rtf文件加载,是带格式的
调用LoadFile("xxx.rtf"),从rtf文件加载,是带格式的
#7
Correction to my post:
richTextBox .Rtf = rtf;
#8
这位老兄,@"c:\mytxt.rft" 这个@是干什么的?
我吧这句用myFileName代替了,myFileName从打开对话框获得,
myFileName = openFileDialog1.FileName;
但是执行道richTextBox.Rtf = rtf;时报错,文件格式无效,
然后我在C盘建了各mytxt.rft,完全用你的代码,但还是说格式无效啊!!!
#9
use this one :)
#10
这个试过了,打开的时候报错文件格式无效,
#11
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
#12
怎么回事啊,都这么说那么应该是木问题的。。。。
#13
写注册表的方法还没试过,但也只能搞定颜色,字体样式和大小怎么半??
#14
存rtf(其实时文本的),里面就注明了元素的字体 大小 颜色。
rtf文件格式的最前面是样式表。
rtf文件格式的最前面是样式表。
#15
保存为rtf格式的
保存的时候这样保存
this.richTextBox1.SaveFile(this.saveFileDialog1.FileName,RichTextBoxStreamType.RichText);
打开的时候再以相同的形式打开
this.richTextBox1.LoadFile(this.openFileDialog1.FileName,RichTextBoxStreamType.RichText);
保存的时候这样保存
this.richTextBox1.SaveFile(this.saveFileDialog1.FileName,RichTextBoxStreamType.RichText);
打开的时候再以相同的形式打开
this.richTextBox1.LoadFile(this.openFileDialog1.FileName,RichTextBoxStreamType.RichText);
#16
大哥,这个格式的怎么保存和打开撒,上面的有几个都是说的这种方法,
可试过了根本不行,我昨天开可以50分的贴也回复的是用rtf保存,,,,,
可试过了根本不行,我昨天开可以50分的贴也回复的是用rtf保存,,,,,
#17
up
#18
顶上去
#19
怎么回事?这帖我不是结了吗?今天竟然通知我没结帖,,,,,郁闷!!!!!!!!
#20
纠结、
#21
private void btnSave_Click(object sender, EventArgs e)
{
richTextBox1.SaveFile(@"D:\c.rtf");
}
private void btnOpen_Click(object sender, EventArgs e)
{
string nextline = @"D:\c.rtf";
richTextBox2.LoadFile(nextline, RichTextBoxStreamType.RichText);
}
{
richTextBox1.SaveFile(@"D:\c.rtf");
}
private void btnOpen_Click(object sender, EventArgs e)
{
string nextline = @"D:\c.rtf";
richTextBox2.LoadFile(nextline, RichTextBoxStreamType.RichText);
}
#1
记得以前学过这个。
似乎得调用windows api,写入注册表信息或是INI信息
似乎得调用windows api,写入注册表信息或是INI信息
#2
可以考虑用注册表来存储。
颜色设置调用控件colorDialog,通过方法写入注册表。
using Microsoft.Win32;//用到Registry和RegistryKey两个类
//写入注册表
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
颜色设置调用控件colorDialog,通过方法写入注册表。
using Microsoft.Win32;//用到Registry和RegistryKey两个类
//写入注册表
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
#3
保存成rtf文件啊,是带格式的
#4
// save
richTextBox.SaveFile(@"c:\mytxt.rtf");
// load
string rtf = System.IO.File.ReadAllText( @"c:\mytxt.rft" );
richTextBox = rtf;
#5
private bool ReadRegistry()
{
//依次打开SoftWareKey和ChoseColor子键
RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");
RegistryKey choseColorKey = softwareKey.OpenSubKey("ChoseColor");
if (choseColorKey == null)
return false;
else
{
RegistryKey colorKey = choseColorKey.OpenSubKey("Color");
if (colorKey == null)
return false;
else
{
try
{
listBox1.Items.Add("成功打开键:" + colorKey.ToString());
//读取注册表中Color键的各个键值的值
int redComponet = (int)colorKey.GetValue("Red");
int greenComponent = (int)colorKey.GetValue("Green");
int blueComponent = (int)colorKey.GetValue("Blue");
BackColor = Color.FromArgb(redComponet, greenComponent, blueComponent);
//遍历由指定子键拥有的键值名称组成的字符串数组
foreach (string sValName in colorKey.GetValueNames())
{
listBox1.Items.Add(sValName + "分量值:" + colorKey.GetValue(sValName));
}
return true;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
return false;
}
}
}
}
{
//依次打开SoftWareKey和ChoseColor子键
RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");
RegistryKey choseColorKey = softwareKey.OpenSubKey("ChoseColor");
if (choseColorKey == null)
return false;
else
{
RegistryKey colorKey = choseColorKey.OpenSubKey("Color");
if (colorKey == null)
return false;
else
{
try
{
listBox1.Items.Add("成功打开键:" + colorKey.ToString());
//读取注册表中Color键的各个键值的值
int redComponet = (int)colorKey.GetValue("Red");
int greenComponent = (int)colorKey.GetValue("Green");
int blueComponent = (int)colorKey.GetValue("Blue");
BackColor = Color.FromArgb(redComponet, greenComponent, blueComponent);
//遍历由指定子键拥有的键值名称组成的字符串数组
foreach (string sValName in colorKey.GetValueNames())
{
listBox1.Items.Add(sValName + "分量值:" + colorKey.GetValue(sValName));
}
return true;
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
return false;
}
}
}
}
#6
调用SaveFile("xxx.rtf"),保存为rtf文件
调用LoadFile("xxx.rtf"),从rtf文件加载,是带格式的
调用LoadFile("xxx.rtf"),从rtf文件加载,是带格式的
#7
Correction to my post:
richTextBox .Rtf = rtf;
#8
这位老兄,@"c:\mytxt.rft" 这个@是干什么的?
我吧这句用myFileName代替了,myFileName从打开对话框获得,
myFileName = openFileDialog1.FileName;
但是执行道richTextBox.Rtf = rtf;时报错,文件格式无效,
然后我在C盘建了各mytxt.rft,完全用你的代码,但还是说格式无效啊!!!
#9
use this one :)
#10
这个试过了,打开的时候报错文件格式无效,
#11
private void SaveToRegistry()
{
try
{
//以可写的方式打开SOFTWARE子键
RegistryKey softwarekey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
//依次创建ChoseColor子键和Color子键
RegistryKey choseColorKey = softwarekey.CreateSubKey("ChoseColor");
RegistryKey colorKey = choseColorKey.CreateSubKey("Color");
//设置Color键的SetValue方法可能引发异常
colorKey.SetValue("Red", (int)BackColor.R);
colorKey.SetValue("Green", (int)BackColor.G);
colorKey.SetValue("Blue", (int)BackColor.B);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, "提示");
}
}
#12
怎么回事啊,都这么说那么应该是木问题的。。。。
#13
写注册表的方法还没试过,但也只能搞定颜色,字体样式和大小怎么半??
#14
存rtf(其实时文本的),里面就注明了元素的字体 大小 颜色。
rtf文件格式的最前面是样式表。
rtf文件格式的最前面是样式表。
#15
保存为rtf格式的
保存的时候这样保存
this.richTextBox1.SaveFile(this.saveFileDialog1.FileName,RichTextBoxStreamType.RichText);
打开的时候再以相同的形式打开
this.richTextBox1.LoadFile(this.openFileDialog1.FileName,RichTextBoxStreamType.RichText);
保存的时候这样保存
this.richTextBox1.SaveFile(this.saveFileDialog1.FileName,RichTextBoxStreamType.RichText);
打开的时候再以相同的形式打开
this.richTextBox1.LoadFile(this.openFileDialog1.FileName,RichTextBoxStreamType.RichText);
#16
大哥,这个格式的怎么保存和打开撒,上面的有几个都是说的这种方法,
可试过了根本不行,我昨天开可以50分的贴也回复的是用rtf保存,,,,,
可试过了根本不行,我昨天开可以50分的贴也回复的是用rtf保存,,,,,
#17
up
#18
顶上去
#19
怎么回事?这帖我不是结了吗?今天竟然通知我没结帖,,,,,郁闷!!!!!!!!
#20
纠结、
#21
private void btnSave_Click(object sender, EventArgs e)
{
richTextBox1.SaveFile(@"D:\c.rtf");
}
private void btnOpen_Click(object sender, EventArgs e)
{
string nextline = @"D:\c.rtf";
richTextBox2.LoadFile(nextline, RichTextBoxStreamType.RichText);
}
{
richTextBox1.SaveFile(@"D:\c.rtf");
}
private void btnOpen_Click(object sender, EventArgs e)
{
string nextline = @"D:\c.rtf";
richTextBox2.LoadFile(nextline, RichTextBoxStreamType.RichText);
}