RichTextAutoBottom.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using FileWatcher;
  2. using System;
  3. using System.Drawing;
  4. using System.Media;
  5. using System.Threading;
  6. using System.Windows.Forms;
  7. namespace FileWatcher
  8. {
  9. public partial class RichTextAutoBottom : RichTextBox
  10. {
  11. Thread thread;
  12. string FileName = "";
  13. public RichTextAutoBottom()
  14. {
  15. InitializeComponent();
  16. thread = new Thread(PlaySound);
  17. TextChanged += RichTextBox_TextChange;
  18. }
  19. private void RichTextBox_TextChange(object sender, EventArgs e)
  20. {
  21. SelectionStart = Text.Length;
  22. ScrollToCaret();
  23. }
  24. public void AppendText(string str)
  25. {
  26. base.AppendText(str);
  27. //如果颜色是红色则进行提示音
  28. LogManager.DoLog(FindForm().Tag + str);
  29. }
  30. /// <summary>
  31. /// color设置AppendText的颜色
  32. /// </summary>
  33. /// <param name="str"></param>
  34. /// <param name="color"></param>
  35. public void AppendText(string str, Color color)
  36. {
  37. SelectionColor = color;
  38. base.AppendText(str);
  39. //如果颜色是红色则进行提示音
  40. LogManager.DoLog(FindForm().Tag + str);
  41. }
  42. /// <summary>
  43. /// 提示错误信息清楚指定控件的值
  44. /// </summary>
  45. /// <param name="str"></param>
  46. /// <param name="color"></param>
  47. /// <param name="ctl"></param>
  48. public void AppendText(string str, Color color, Control ctl)
  49. {
  50. SelectionColor = color;
  51. base.AppendText(str);
  52. ctl.Text = "";
  53. //如果颜色是红色则进行提示音
  54. LogManager.DoLog(FindForm().Tag + str);
  55. }
  56. private void PlaySound()
  57. {
  58. //要加载COM组件:Microsoft speech object Library
  59. if (!System.IO.File.Exists(FileName))
  60. {
  61. return;
  62. }
  63. try
  64. {
  65. SoundPlayer player = new SoundPlayer();
  66. player.SoundLocation = FileName;
  67. player.Load();
  68. player.Play();
  69. }
  70. catch (Exception e)
  71. {
  72. MessageBox.Show(e.Message);
  73. }
  74. }
  75. }
  76. }