int ln = 0;
bool change = false;
List<string> _ImageList = new List<string>();
List<string> _ImageList2 = new List<string>();
/// <summary>
/// 获取richtextbox所有的图片的纯rtf代码(不包括高度宽度像素等信息)
/// </summary>
/// <param name="_ImageList">返回图片rtf字符串列表</param>
private void ReadImg(ref List<string> _ImageList)
{
_ImageList.Clear();
string _RtfText = richtBox.Rtf;
while (true)
{
int _Index = _RtfText.IndexOf("pichgoal");
if (_Index == -1) break;
_RtfText = _RtfText.Remove(0, _Index + 8);
_Index = _RtfText.IndexOf("\r\n");
_RtfText = _RtfText.Remove(0, _Index);
_Index = _RtfText.IndexOf("}");
_ImageList.Add(_RtfText.Substring(0, _Index).Replace("\r\n", ""));
_RtfText = _RtfText.Remove(0, _Index);
}
}
private void richtBox_TextChanged(object sender, EventArgs e)
{
if (change == false)
change = true;
if (ln > richtBox.TextLength)
{
ReadImg(ref _ImageList2);
//获取删除的图片
List<string> reducelist = _ImageList.Except(_ImageList2).ToList();
if (reducelist.Count > 0) //代表有删除过图片
{
int index = _ImageList.FindIndex(r => r == reducelist[0]);
if (index != -1)
{
//MessageBox.Show("删除了第" + (index + 1) + "张图片");
}
}
}
ln = richtBox.TextLength;
ReadImg(ref _ImageList);
}