0

C# のリッチテキスト ボックスにリンクがあります。URLリンクを右クリックすると、メニューが表示されます。URL でない場合は、何も表示したくありません。現在、マウス ダウン イベントをタップして、マウス ポインターの位置に基づいて行を選択しています。選択した行が有効な URL である場合は、メニューを表示します。それはうまく機能しますが、URLの横にテキストがある場合でも、その行は有効なURLとして検出され、メニューが表示されます. また、マウス変更イベントも利用できません。私がやろうとしていることをどのように達成できるかについてのアイデアはありますか?

ありがとう、

4

1 に答える 1

1

これがあなたが探しているものかどうかはわかりませんが、これよりも良いものを見つけることができると信じています

MouseDown が呼び出されたときにこれを試すことができます

private void richTextBox1_MouseDown(object sender, MouseEventArgs e)
{
    // Continue if the Right mouse button was clicked
    if (e.Button == MouseButtons.Right)
    {
        // Check if the selected item starts with http://
        if (richTextBox1.SelectedText.IndexOf("http://") > -1)
        {
            // Avoid popping the menu if the value contains spaces
            if (richTextBox1.SelectedText.Contains(' '))
            {
               // Show the menu
               contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
            }
        }   
    }
}

または、これはリンクがクリックされたときですが、これはマウスの右クリックには適用されません

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
     contextMenuStrip1.Show(Cursor.Position.X, Cursor.Position.Y);
}

ありがとう、

これが役立つことを願っています:)

于 2012-10-01T19:42:24.973 に答える