在richtextbox中添加button,再处理button的click事件,不知是不是楼主想要的
this.richTextBox1.Controls.Add(this.button1);
this.button1.ForeColor=Color.Red;
this.button1.Text="取消";
this.button1.FlatStyle=System.Windows.Forms.FlatStyle.Flat;
this.richTextBox1.Controls.Add(this.button1);
this.button1.ForeColor=Color.Red;
this.button1.Text="取消";
this.button1.FlatStyle=System.Windows.Forms.FlatStyle.Flat;
{
int index = rtxtMessage.GetCharIndexFromPosition( new System.Drawing.Point(e.X ,e.Y) );
try
{
if((rtxtMessage.Text.Substring(index,4) == "取消发送") || (rtxtMessage.Text.Substring(index - 1,4) == "取消发送") ||
(rtxtMessage.Text.Substring(index -2 ,4) == "取消发送") || (rtxtMessage.Text.Substring(index -3 ,4) == "取消发送"))
{
rtxtMessage.SelectionStart = index;
if(rtxtMessage.SelectionFont.Underline)
rtxtMessage.Cursor = Cursors.Hand;
}
else
{
if((rtxtMessage.Text.Substring(index,5) == "接收该文件") || (rtxtMessage.Text.Substring(index - 1,5) == "接收该文件") ||
(rtxtMessage.Text.Substring(index -2 ,5) == "接收该文件") || (rtxtMessage.Text.Substring(index -3 ,5) == "接收该文件")
|| (rtxtMessage.Text.Substring(index -4 ,5) == "接收该文件"))
{
rtxtMessage.SelectionStart = index;
if(rtxtMessage.SelectionFont.Underline)
rtxtMessage.Cursor = Cursors.Hand;
}
else
{
if((rtxtMessage.Text.Substring(index,5) == "谢绝该文件") || (rtxtMessage.Text.Substring(index - 1,5) == "谢绝该文件") ||
(rtxtMessage.Text.Substring(index -2 ,5) == "谢绝该文件") || (rtxtMessage.Text.Substring(index -3 ,5) == "谢绝该文件")
|| (rtxtMessage.Text.Substring(index -4 ,5) == "谢绝该文件"))
{
rtxtMessage.SelectionStart = index;
if(rtxtMessage.SelectionFont.Underline)
rtxtMessage.Cursor = Cursors.Hand;
}
else
{
if((rtxtMessage.Text.Substring(index,4) == "取消接收") || (rtxtMessage.Text.Substring(index - 1,4) == "取消接收") ||
(rtxtMessage.Text.Substring(index -2 ,4) == "取消接收") || (rtxtMessage.Text.Substring(index -3 ,4) == "取消接收"))
{
rtxtMessage.SelectionStart = index;
if(rtxtMessage.SelectionFont.Underline)
rtxtMessage.Cursor = Cursors.Hand;
}
else
rtxtMessage.Cursor = Cursors.IBeam;
}
}
}
}
catch(Exception)
{
rtxtMessage.Cursor = Cursors.IBeam;
}
} private void rtxtMessage_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
int index = rtxtMessage.GetCharIndexFromPosition( new System.Drawing.Point(e.X ,e.Y) );
AnalyzeRcv Analyser = new AnalyzeRcv();
Exchanger ex = new Exchanger();
string nowSendFileName;
P2PCommToClient ExchangeToC = new P2PCommToClient(); try
{
if((rtxtMessage.Text.Substring(index,4) == "取消发送") || (rtxtMessage.Text.Substring(index - 1,4) == "取消发送") ||
(rtxtMessage.Text.Substring(index -2 ,4) == "取消发送") || (rtxtMessage.Text.Substring(index -3 ,4) == "取消发送"))
{
if(!rtxtMessage.SelectionFont.Underline)
return;
InitMsgShower(index); if(index - 50 > 0)
rtxtMessage.SelectionStart = index - 50;
else
rtxtMessage.SelectionStart = 0; rtxtMessage.SelectionLength = 50;
nowSendFileName = Analyser.GetCancelFileName(rtxtMessage.SelectedText);
ex.CancelSend((int)this.Tag,nowSendFileName);
}
else
{
if((rtxtMessage.Text.Substring(index,5) == "接收该文件") || (rtxtMessage.Text.Substring(index - 1,5) == "接收该文件") ||
(rtxtMessage.Text.Substring(index -2 ,5) == "接收该文件") || (rtxtMessage.Text.Substring(index -3 ,5) == "接收该文件")
|| (rtxtMessage.Text.Substring(index -4 ,5) == "接收该文件") && rtxtMessage.SelectionFont.Underline)
{
if(!rtxtMessage.SelectionFont.Underline)
return;
InitMsgShower(index);
if(folderBrowserDlg.ShowDialog() == DialogResult.OK)
{
//在此处添加 接收线程的创建,并将其加入的Exchanger的接收线程池中
if(index - 50 > 0)
rtxtMessage.SelectionStart = index - 50;
else
rtxtMessage.SelectionStart = 0; rtxtMessage.SelectionLength = 50;
nowSendFileName = Analyser.GetCancelFileName(rtxtMessage.SelectedText);
ex.AcceptReceive((int)this.Tag,nowSendFileName,folderBrowserDlg.SelectedPath);
}
}
else
{
if((rtxtMessage.Text.Substring(index,5) == "谢绝该文件") || (rtxtMessage.Text.Substring(index - 1,5) == "谢绝该文件") ||
(rtxtMessage.Text.Substring(index -2 ,5) == "谢绝该文件") || (rtxtMessage.Text.Substring(index -3 ,5) == "谢绝该文件")
|| (rtxtMessage.Text.Substring(index -4 ,5) == "谢绝该文件"))
{
if(!rtxtMessage.SelectionFont.Underline)
return;
InitMsgShower(index); if(index - 50 > 0)
rtxtMessage.SelectionStart = index - 50;
else
rtxtMessage.SelectionStart = 0; rtxtMessage.SelectionLength = 50;
nowSendFileName = Analyser.GetCancelFileName(rtxtMessage.SelectedText);
ex.RefuseReceive((int)this.Tag,nowSendFileName);
}
else
{
if((rtxtMessage.Text.Substring(index,4) == "取消接收") || (rtxtMessage.Text.Substring(index - 1,4) == "取消接收") ||
(rtxtMessage.Text.Substring(index -2 ,4) == "取消接收") || (rtxtMessage.Text.Substring(index -3 ,4) == "取消接收"))
{
if(!rtxtMessage.SelectionFont.Underline)
return;
InitMsgShower(index); if(index - 50 > 0)
rtxtMessage.SelectionStart = index - 50;
else
rtxtMessage.SelectionStart = 0; rtxtMessage.SelectionLength = 50; nowSendFileName = Analyser.GetCancelFileName(rtxtMessage.SelectedText);
ex.CancelReceive((int)this.Tag,nowSendFileName);
}
}
}
}
}
catch(Exception f)
{
}
}