如下的语句,测试通过,但是若使用richTextBox控件,来进行绑定,怎样写?
textBox1.DataBindings.Add("Text", dataGridView1.DataSource, "SEQ_NAME", true);
pictureBox1.DataBindings.Add("Image", dataGridView1.DataSource, "TUPIAN", true);使用如下语句,不正确。
richTextBox1.DataBindings.Add("Text", dataGridView1.DataSource, "BEIZHU", true);
-------------
DataBindings.Add这个方法一共有7个重载,其中
DataBindings.Add(string properyName, object dataSource,string dataMember)
第一个参数,除 Text Image Value 之外,还能有哪些值?
若能实现了绑定,就不再需要如下的语句,编辑修改就非常方便了。
    byte[] pic = (byte[])dataGridView1.CurrentRow.Cells[2].Value;
    MemoryStream ms1 = new MemoryStream(pic);
   richTextBox1.LoadFile(ms1, RichTextBoxStreamType.RichText);

解决方案 »

  1.   

    codeproject上有现成的类,添加进去就可以,和自带的textbox一样使用。
      

  2.   

    http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx
      

  3.   

    谢谢,代码很不错。但跟我的需求还有点距离,我不想在 DataGridView 的单元格中编辑rtf内容,而是想使用DataGridView(设为只读) 作为导航,编辑内容在 richtextbox 控件中进行。想将 richtextbox 的内容同步绑定 datagridview中的内容,不清楚怎样实现?都是二进制字段,图片可以实现,如:pictureBox1.DataBindings.Add("Image", dataGridView1.DataSource, "TUPIAN", true);但为何 用richtextbox 就不能呢? (照理,图片可以,RTF估计应该也是可以的) 如采用下面语句:
    richTextBox1.DataBindings.Add("Rtf", dataGridView1.DataSource, "BEIZHU", true);
    或者 Rtf 修改为 SelectedRtf   编译均能通过,但richtextbox控件显示不出来内容。利用您推荐的 codeproject 代码,可直接在datagridview中进行编RTF文档的格式编辑。
      

  4.   

    什么叫“richtextbox 的内容同步绑定 datagridview中的内容”?你可以使用richtextbox 控件编辑内容,然后获得它的RTF代码,再赋值到datagridview中的richtextbox 控件中,就可以显示了。
      

  5.   

    把我的需求再重述一遍:后台数据库是oracle,数据表如下:
    CREATE TABLE A01
    (
      SEQ_ID         NUMBER,    ----主键,不修改。
      SEQ_NAME       VARCHAR2(20 BYTE),      ----内容绑定到 textBox1 中
      BEIZHU         BLOB,   ----存储带格式的RTF内容,用richtextbox控件编辑。不清楚怎样实现绑定?
      TUPIAN         BLOB     ---存储图片,内容绑定到 pictureBox1 控件中。
    )用dataGridView1显示 select SEQ_ID, SEQ_NAME,BEIZHU,TUPIAN from A01  此语句,dataGridView1的后两列可隐藏。
    然后,执行如下两句正常:
    textBox1.DataBindings.Add("Text", dataGridView1.DataSource, "SEQ_NAME", true);
    pictureBox1.DataBindings.Add("Image", dataGridView1.DataSource, "TUPIAN", true);但是:如下这句
    richTextBox1.DataBindings.Add("Rtf", dataGridView1.DataSource, "BEIZHU", true);  显示不出来内容。如采用:
    richTextBox1.DataBindings.Add("Text", dataGridView1.DataSource, "BEIZHU", true);  显示的内容是:Byte[] Array使用 richTextBox1.DataBindings.Add("Text", dataGridView1.DataSource, "SEQ_NAME", true); 正常,但是我想针对 beizhu (字段类型是 BLOB) 的内容,绑定到 richTextBox 中,不清楚怎样写?不采用绑定的方式, 使用如下语句,能满足要求。 也就是讲,如采用绑定的方式,怎样实现如下语句的执行效果。
      byte[] pic = (byte[])dataGridView1.CurrentRow.Cells[2].Value;
      MemoryStream ms1 = new MemoryStream(pic);
      richTextBox1.LoadFile(ms1, RichTextBoxStreamType.RichText);应该表述清楚了吧?
      

  6.   

    问题是:怎样能将 数据表中 BLOB 字段的内容,读入到 datagridview 中的  DataGridViewRichTextBoxColumn  这一自定义列中?如下语句 执行后,界面中所显示出来的结果仍然是: System.Byte[]   而不是真正的内容。dataGridView1.AutoGenerateColumns = false;
    DataGridViewRichTextBoxColumn BEIZHU = new DataGridViewRichTextBoxColumn();
    BEIZHU.HeaderText = "备注";
    BEIZHU.DataPropertyName = "BEIZHU";            
    BEIZHU.Name = "BEIZHU";
    dataGridView1.Columns.Add(BEIZHU);
      

  7.   

    在猪八戒网上发布了一个任务,如下地址:http://task.zhubajie.com/646405/ 希望得到高手的关注。