比如有个字符串"你好,谢谢"让里面的“你好”用红色显示,让"谢谢"以蓝色显示
这样的功能不知如何实现,或者有什么控件可以实现这样的功能
希望各位高手不要吝啬

解决方案 »

  1.   

    用两个label不就完了,为啥非要用一个?
      

  2.   

    既然使用RichTextBox可以 轻易实现,lz又何必执着用Textbox呢
      

  3.   

    既然使用RichTextBox可以 轻易实现,lz又何必执着用Textbox呢应该怎样实现?能不能给出实例代码?
      

  4.   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.IO;namespace 使用通用对话框
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
      private System.Windows.Forms.RichTextBox richTextBox1;
      private System.Windows.Forms.Button button1;
      private System.Windows.Forms.Button button2;
      private System.Windows.Forms.Button button3;
      private System.Windows.Forms.Button button4;
      private System.Windows.Forms.SaveFileDialog saveFileDialog1;
      private System.Windows.Forms.FontDialog fontDialog1;
      private System.Windows.Forms.ColorDialog colorDialog1;
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private System.ComponentModel.Container components = null;  public Form1()
      {
       //
       // Windows 窗体设计器支持所必需的
       //
       InitializeComponent();   //
       // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       //
      }  /// <summary>
      /// 清理所有正在使用的资源。
      /// </summary>
      protected override void Dispose( bool disposing )
      {
       if( disposing )
       {
        if (components != null) 
        {
         components.Dispose();
        }
       }
       base.Dispose( disposing );
      }  #region Windows 窗体设计器生成的代码
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {
       this.richTextBox1 = new System.Windows.Forms.RichTextBox();
       this.button1 = new System.Windows.Forms.Button();
       this.button2 = new System.Windows.Forms.Button();
       this.button3 = new System.Windows.Forms.Button();
       this.button4 = new System.Windows.Forms.Button();
       this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
       this.fontDialog1 = new System.Windows.Forms.FontDialog();
       this.colorDialog1 = new System.Windows.Forms.ColorDialog();
       this.SuspendLayout();
       // 
       // richTextBox1
       // 
       this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
        | System.Windows.Forms.AnchorStyles.Left) 
        | System.Windows.Forms.AnchorStyles.Right)));
       this.richTextBox1.Location = new System.Drawing.Point(0, 0);
       this.richTextBox1.Name = "richTextBox1";
       this.richTextBox1.Size = new System.Drawing.Size(296, 216);
       this.richTextBox1.TabIndex = 0;
       this.richTextBox1.Text = "";
       // 
       // button1
       // 
       this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.button1.Location = new System.Drawing.Point(16, 224);
       this.button1.Name = "button1";
       this.button1.Size = new System.Drawing.Size(48, 23);
       this.button1.TabIndex = 1;
       this.button1.Text = "保存";
       this.button1.Click += new System.EventHandler(this.button1_Click);
       // 
       // button2
       // 
       this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.button2.Location = new System.Drawing.Point(96, 224);
       this.button2.Name = "button2";
       this.button2.Size = new System.Drawing.Size(48, 23);
       this.button2.TabIndex = 2;
       this.button2.Text = "字体";
       this.button2.Click += new System.EventHandler(this.button2_Click);
       // 
       // button3
       // 
       this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.button3.Location = new System.Drawing.Point(168, 224);
       this.button3.Name = "button3";
       this.button3.Size = new System.Drawing.Size(48, 23);
       this.button3.TabIndex = 3;
       this.button3.Text = "颜色";
       this.button3.Click += new System.EventHandler(this.button3_Click);
       // 
       // button4
       // 
       this.button4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.button4.Location = new System.Drawing.Point(232, 224);
       this.button4.Name = "button4";
       this.button4.Size = new System.Drawing.Size(48, 23);
       this.button4.TabIndex = 4;
       this.button4.Text = "清除";
       this.button4.Click += new System.EventHandler(this.button4_Click);
       // 
       // Form1
       // 
       this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
       this.ClientSize = new System.Drawing.Size(292, 254);
       this.Controls.Add(this.button4);
       this.Controls.Add(this.button3);
       this.Controls.Add(this.button2);
       this.Controls.Add(this.button1);
       this.Controls.Add(this.richTextBox1);
       this.Name = "Form1";
       this.Text = "Form1";
       this.Closing += new System.ComponentModel.CancelEventHandler(this.Form1_Closing);
       this.ResumeLayout(false);  }
      #endregion  /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main() 
      {
       Application.Run(new Form1());
      }  private void button1_Click(object sender, System.EventArgs e)
      {
       SaveFileDialog saveFileDialog=new SaveFileDialog();
       saveFileDialog.Filter="文本文件(.txt)|*.txt|C#文件(.cs)|*.cs|所有文件(*.*)|*.*";
       saveFileDialog.FilterIndex=2;
       saveFileDialog.RestoreDirectory=true;
       if(saveFileDialog.ShowDialog()==DialogResult.OK)
       {
        string fName=saveFileDialog.FileName;
        StreamWriter sw=File.AppendText(fName);
        sw.Write(this.richTextBox1.Text);
        sw.Write("dsfadf");
        sw.Flush();
        sw.Close(); 
       }
      }
      private void button2_Click(object sender, System.EventArgs e)
      {
       FontDialog fontDialog=new FontDialog();
       fontDialog.Color=richTextBox1.ForeColor;
       fontDialog.AllowScriptChange=true;
       fontDialog.ShowColor=true;
       if(fontDialog.ShowDialog()!=DialogResult.Cancel)
       {
        richTextBox1.SelectionFont=fontDialog.Font;//将当前选定的文字改变字体
       }
      }
      private void button3_Click(object sender, System.EventArgs e)
      {
       ColorDialog colorDialog=new ColorDialog();
       colorDialog.AllowFullOpen=true;
       colorDialog.FullOpen=true;
       colorDialog.ShowHelp=true;
       colorDialog.Color=Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮时
       colorDialog.ShowDialog();
       richTextBox1.SelectionColor=colorDialog.Color;
      }
      private void button4_Click(object sender, System.EventArgs e)
      {
       richTextBox1.Clear();
      }  private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
      {
       DialogResult aa=MessageBox.Show("要保存文件吗?","提示",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information);
      {
       if(aa==DialogResult.Yes)
       {
        e.Cancel=false;
        SaveFileDialog sf=new SaveFileDialog();
        sf.Filter="文本文件|txt.txt|c#文件|*.cs|所有文件|*.*";
        sf.FilterIndex=2;
        sf.RestoreDirectory=true;
        if(sf.ShowDialog()==DialogResult.OK)
        {
         string fName=sf.FileName;
         StreamWriter sw=File.AppendText(fName);
         sw.Write(this.richTextBox1.Text);
         sw.Flush();
               
        }
        else
        {
         e.Cancel=true;
        }
             
       }
       else if(aa==DialogResult.No)
       {
        e.Cancel=false;
             
        Application.Exit();
         
       }
       else if(aa==DialogResult.Cancel)
       {
        e.Cancel=true;
         
       }   
      }
      }
    }
    }