找回密码
 立即注册

QQ登录

只需一步,快速开始

774828727

银牌会员

12

主题

76

帖子

2972

积分

银牌会员

积分
2972

活字格认证

774828727
银牌会员   /  发表于:2013-10-17 16:44  /   查看:9467  /  回复:10
  怎样设置富文本框里面的文字多样式,比如说选中里面的一段文字,然后只改变这段文字的字体,这个咋弄,能帮忙说下或者做个例子么? 感激不尽!
0000.jpg (3.71 KB, 下载次数: 819)

10 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-10-17 18:14:00
沙发
回复 1楼774828727的帖子

问题正在处理中,明天回复。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-18 10:23:00
板凳
回复 1楼774828727的帖子

你好,
该问题需要通过自定义单元格类型来处理,详细请参考代码:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.SheetView sv = this.fpSpread1.Sheets[0];

  4.             MyRIFCellType rtb;
  5.             rtb = new MyRIFCellType();
  6.             rtb.MaxLength = 10;
  7.             rtb.Multiline = true;


  8.             System.IO.StreamReader reader = new System.IO.StreamReader("test.rtf");
  9.             string text = reader.ReadToEnd();

  10.             sv.Cells[0, 0].CellType = rtb;
  11.             sv.Cells[0, 0].Value = text;

  12.             sv.Rows[0].Height = 200;
  13.             sv.Columns[0].Width = 200;

  14.             this.fpSpread1.EditModeOn += new EventHandler(fpSpread1_EditModeOn);


  15.         }

  16.         void fpSpread1_EditModeOn(object sender, EventArgs e)
  17.         {
  18.             RichTextBox test = this.fpSpread1.EditingControl as RichTextBox;
  19.             test.SelectionChanged += new EventHandler(test_SelectionChanged);
  20.         }

  21.         void test_SelectionChanged(object sender, EventArgs e)
  22.         {
  23.             RichTextBox rtf = sender as RichTextBox;
  24.             rtf.SelectionColor = Color.Yellow;
  25.         }
  26.     }
  27.     class MyRIFCellType : FarPoint.Win.Spread.CellType.RichTextCellType
  28.     {
  29.         RichTextBox rtfEditor;
  30.         public override Control GetEditorControl(Control parent, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
  31.         {
  32.             rtfEditor = new RichTextBox();
  33.             return rtfEditor;
  34.         }

  35.         public override void SetEditorValue(object value)
  36.         {
  37.             rtfEditor.Rtf = value.ToString();
  38.         }

  39.         public override object GetEditorValue()
  40.         {
  41.             return rtfEditor.Rtf;
  42.         }
  43.     }
复制代码
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-10-18 13:45:00
地板
谢了,我先试下。
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-10-18 14:21:00
5#
000000.jpg (14.73 KB, 下载次数: 749)
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-10-18 14:22:00
6#
回复 3楼iceman的帖子

帮忙再看下,谢了。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-18 15:40:00
7#
回复 6楼774828727的帖子

这个需要通过自定义 ContextMenu 来实现。示例代码:

  1. void fpSpread1_EditModeOn(object sender, EventArgs e)
  2.         {
  3.             RichTextBox test = this.fpSpread1.EditingControl as RichTextBox;
  4.             test.SelectionChanged += new EventHandler(test_SelectionChanged);
  5.             ContextMenu cm = new ContextMenu();
  6.             MenuItem itm = new MenuItem();
  7.             itm.Text = "字体";
  8.             itm.Click += new EventHandler(itm_Click);
  9.             cm.MenuItems.Add(itm);
  10.             test.ContextMenu = cm;
  11.         }

  12.         void itm_Click(object sender, EventArgs e)
  13.         {
  14.             if (this.fontDialog1.ShowDialog()== System.Windows.Forms.DialogResult.OK)
  15.             {

  16.             }
  17.         }
复制代码
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-10-19 10:40:00
8#
回复 7楼iceman的帖子

能帮忙做个例子么,就是能实现选中的那几个字增加下换线,其他的字体不变
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-21 09:25:00
9#
回复 8楼774828727的帖子

测试代码如下:

  1. RichTextBox test;
  2.         void fpSpread1_EditModeOn(object sender, EventArgs e)
  3.         {
  4.             test = this.fpSpread1.EditingControl as RichTextBox;
  5.             test.SelectionChanged += new EventHandler(test_SelectionChanged);
  6.             ContextMenu cm = new ContextMenu();
  7.             MenuItem itm = new MenuItem();
  8.             itm.Text = "添加下滑线";
  9.             itm.Click += new EventHandler(itm_Click);
  10.             cm.MenuItems.Add(itm);
  11.             test.ContextMenu = cm;
  12.         }

  13.         void itm_Click(object sender, EventArgs e)
  14.         {
  15.             Font font = new System.Drawing.Font("SimSum", 12, FontStyle.Underline);
  16.             test.SelectionFont = font;
  17.         }

  18.         void test_SelectionChanged(object sender, EventArgs e)
  19.         {
  20.             RichTextBox rtf = sender as RichTextBox;

  21.             rtf.SelectionColor = Color.Yellow;
  22.         }
复制代码


以上,实现了设置选择字体设置下划线,更详细的细节还需要楼主自主实现。仅供参考。
回复 使用道具 举报
774828727
银牌会员   /  发表于:2013-10-21 13:18:00
10#
谢了,我先研究下
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部