richtextbox的LoadFile方法怎么用?
这个方法的第二个参数就是针对不同的文件类型加载时要使用适合它的富文本流格式才行。
以下是我做开发的时候用到的几种文件的流格式,可以参考。
更多的文件类型对应的流格式需要你自己去测试。
RichTextBoxStreamType streamType;
switch (fileExt)
{
case "txt": // 文本文件
streamType = RichTextBoxStreamType.PlainText; break;
case "rtf": // 写字板
streamType = RichTextBoxStreamType.RichText; break;
case "srt": // 影片字幕
streamType = RichTextBoxStreamType.UnicodePlainText; break;
case "lrc": // 歌词文件
streamType = RichTextBoxStreamType.PlainText; break;
case "xml": // XML文件
streamType = RichTextBoxStreamType.PlainText; break;
default : // 默认类型
streamType = RichTextBoxStreamType.PlainText; break;
}
return streamType;
VB.NET中的Richtextbox控件
Richtextbox控件使用的字符格式为RTF如果你想存储格式信息的话,那么必须存储Richtextbox控件的RTF而不是Text,如果你不了解RTF的话,那么得具体去研究一下了,相当牛的一种格式,不光可以存储文字,还可以存储图片等信息。
至于设置字体颜色和大小,你可以使用.NET提供的字体控件,为选中的文字设置格式,详细代码在MSDN上可以找到。
RichTextBox控件是什么?
RichTextBox控件提供了数个有用的特征,你可以在控件中安排文本的格式。
要改变文本的格式,必须先选中该文本。
只有选中的文本才可以编排字符和段落的格式。
有了这些属性,就可以设置文本使用粗体,改变字体的颜色,创建超底稿和子底稿。
也可以设置左右缩排或不缩排,从而调整段落的格式。
RichTextBox控件可以打开和保存RTF文件或普通的ASCII文本文件。
你可以使用控件的方法(LoadFile和SaveFile)直接读和写文件,或者在Visual Basic的文件输入/输出语句中使用控件的属性如SelRTF和TextRTF等。
RichTextBox控件使用OLEObjects集合支持嵌入的对象。
每个嵌入控件中的对象都表示为一个OLEObject对象。
这允许文档中创建的控件可以包含其他控件或文档。
例如,可以创建一个包含Microsoft Excel报表、Microsoft Word文档或任何在系统中注册的其他OLE对象的文档。
要在RichTextBox控件中插入对象,可以简单地拖住一个文件(如使用Windows 95的Explorer)或其他应用程序(如Microsoft Word)中所用文件的加亮部分(选择部分),将其直接放到该RichTextBox控件上。
RichTextBox控件支持剪贴板和OLE对象的OLE拖放功能。
当从剪贴板粘贴对象时,就在当前的插入点插入该对象。
如果对象是拖放到控件中,则插入点将跟随鼠标指针位置变动,直到释放开鼠标,然后在鼠标释放处插入对象。
要打印RichTextBox控件中的所有或部分文本,使用SelPrint方法。
因为RichTextBox控件是数据绑定控件,可以将其与Data控件绑定到Microsoft ess数据库的Binary或Memo数据域,或其他数据库中类似的数据域(如SQL Server中的TEXT数据类型的数据域)。
RichTextBox控件支持几乎所有的TextBox控件中的属性、事件和方法,如MaxLength, MultiLine, ScrollBars, SelLength, SelStart和SelText。
使用TextBox控件的应用程序很容易改为使用RichTextBox控件。
然而,RichTextBox控件并没有普通TextBox控件的64K字符能力的限制。
属性 Appearance属性(ActiveX控件),BackColor,ForeColor属性(ActiveX控件),BorderStyle属性(ActiveX控件),Enabled属性(ActiveX控件),HideSelection属性(ActiveX控件),MousePointer属性(ActiveX控件),OLEDragMode属性(ActiveX控件),OLEDropMode属性(ActiveX控件),SelLength, SelStart,SelText属性(ActiveX控件),Text属性(ActiveX控件),Height,Width属性(ActiveX控件),Index属性(ActiveX控件),Left, Top属性(ActiveX控件),Tag属性(ActiveX控件),Visible属性(ActiveX控件),Object属性(ActiveX控件),DisableNoScroll属性,SelHangingIndent, SelIndent, SelRightIndent属性,BulletIndent属性,SelAlignment属性,SelBold, SelItalic, SelStrikethru, SelUnderline属性,SelCharOffset属性,SelColor属性,SelFontName属性,SelFontSize属性,SelBullet属性,SelTabCount,SelTabs属性,SelRTF属性,RightMargin属性,AutoVerbMenu属性(RichTextBox控件),SelProtected属性,MaxLength属性(RichTextBox控件),MultiLine属性(RichTextBox控件),ScrollBars属性(RichTextBox控件),OLEObjects属性,DataChanged属性,DataField属性,FileName属性(RichTextBox控件),TextRTF属性,AutoVerbMenu属性(RichTextBox控件),Top属性,DataMember属性,DataFormat属性,DataBindings属性,TabIndex属性,DragIcon属性,DragMode属性,hWnd属性,Locked属性,Causes Validation属性,MouseIcon属性,属性,HelpContextID属性,Name属性,Parent属性,Font属性,Container属性,ToolTipText属性,DataSource属性,WhatsThisHelpID属性。
方法 OLEDrag方法(ActiveX控件),Refresh方法(ActiveX控件),Find方法,GetLineFromChar方法,LoadFile方法,SaveFile方法,SelPrint方法,Span方法,Upto方法,SetFocus方法,Drag方法,Move方法,ZOrder方法,ShowWhatsThis方法。
c#里的RichTextBox控件怎么用?
是不是复制粘贴?
是的话,我说一点,先定义一个公开的变量用来存储复制的文字,来获取这些文字后,再给另一个文本框赋值就OK了.
public static string str;
private void button1_Click(object sender, EventArgs e)
{
str = richTextBox1.SelectedText;//复制
}
private void button2_Click(object sender, EventArgs e)
{
richTextBox2.Text = str;//粘贴
}
c# richtextbox 的问题
给你些意见,
1,类似与你说的这种,可以撤销或重复的是操作,而不是内容。
2,如果是内容的话,用richtextbox.Rtf,而不是内容。
(这个得保存所有的内容,不可取)。
我以我认为,第一种更合理,也就是说监控richtextbox的textchange的事件,对其事件的效果进行保存,这里你可以定义一个对象,对象包含几个变量,1,操作类型(删除,插入,输入等),2,操作内容,这里操作内容不是一个简单的string,也是一个自定义的对象,其有一个操作内容的抽象类或接口派生而来,由操作类型定义和反射其本身类型。
然后将操作反向的呈现出来就可以了。
richTextBox控件怎样写成流·
这个和读取图像的代码是一样的
以下是我经过运行过的代码,写入和读取都可以,主要就是通过MemoryStream内存流与FileStream把读取的信息显示出来或者写入数据库。
ReadRTFFromDb()函数是从数据库读取RFT文件字段
protected void ReadRTFFromDb()
{
SqlConnection oConnection = new SqlConnection("<你的SQL连接字符串>");
oConnection.Open();
SqlCommand oCommand = new SqlCommand("SELECT RTFFile From RTFFiles WHERE Id = (SELECT MAX(Id) FROM RTFFiles)");
oCommand.Connection = oConnection;
SqlDataReader oReader = oCommand.ExecuteReader();
if (oReader.Read())
{
byte[] bytes = new byte[0];
bytes = (byte[])oReader["RTFFile"];
MemoryStream oStream = new MemoryStream(bytes);
richTextBox1.LoadFile(oStream, RichTextBoxStreamType.RichText);
}
}
函数WriteRTFToDb()是将RTF文件写入RTF文件字段。
protected void WriteRTFToDb()
{
FileStream oStream = new FileStream("D:\1.rtf", FileMode.Open, ess.Read, FileShare.ReadWrite, 4096);
byte[] FileByteArray = new byte[oStream.Length];
oStream.Seek(0, SeekOrigin.Begin);
oStream.Read(FileByteArray, 0, (int)oStream.Length);
SqlConnection oConnection = new SqlConnection("<你的SQL连接字符串>");
oConnection.Open();
SqlCommand oCommand = new SqlCommand("INSERT INTO RTFFiles (RTFFile) VALUES (@RTFFile)");
oCommand.Connection = oConnection;
oCommand.Parameters.Add("@RTFFile", SqlDbType.Binary, FileByteArray.Length).Value = FileByteArray;
oCommand.ExecuteNonQuery();
}