MUD/MOO サーバーと通信する C# アプリケーションを開発しています。基本的に、テキストを取得して画面に表示します。現時点では、RichTextBox を使用してテキストを表示しており、色付きのテキストは正常に機能しており、URL を実装するだけで済みますが、これを行っているときに、URL にカスタム テキストを追加する必要があることを発見しました (例: http:// ではなく、 : ここをクリックしてください) Win32 API を使用する必要がありますが、これを行うことはできません... まったく。これは、Linux (およびおそらく mac) でモノラルで動作する必要があります。とにかくこれを機能させる方法はありますか?または、どのような代替手段を追求する必要がありますか? (HTML への切り替えを検討していましたが、クロスプラットフォームの適切な HTML コントロールはありますか?) (これらはすべて無料である必要があります)。
ありがとうございます。
私は最終的に次を使用してそれを行うことができました:
Stack<Link> Links = new Stack<Link>();
internal class Link
{
public int starts = 0;
public int ends = 0;
public string url = "";
}
private string GetLink(RichTextBox rtb, Point point)
{
int index = rtb.GetCharIndexFromPosition(point);
foreach (Link link in Links.ToArray())
if (link.starts <= index && link.ends >= index)
return link.url;
return "";
}
すべてのリンクを Links スタックに追加し、MouseDown イベント内で GetLink を使用するだけです :)