Добавление нескольких гиперссылок без URL-адреса в RichTextBox C# для создания события для каждого

Начнем с контекста... Я создаю игру Text Adventure с использованием C# Windows Form, потому что я новичок, и это то, что я понимаю. (Я не хочу использовать что-то вроде Inform, это проект, чтобы я мог учиться.)

При этом я хотел бы избежать использования кнопок, и большая часть контента будет отображаться в richtextbox. Я осмотрелся вокруг и не могу найти ничего подходящего мне. (Да, я посмотрел здесь: http://www.codeproject.com/Articles/9196/Links-with-arbitrary-text-in-a-RichTextBox но он плохо обрабатывает несколько ссылок и имеет другие проблемы.)

Моя цель в основном состоит в том, чтобы использовать ссылки в richtextbox в качестве меню навигации и для контекстной цели. Я хотел бы иметь возможность иметь текст до и после ссылки, как если бы она была включена в сам текст.

Вот мой код:

public partial class Form1 : Form
{
    Room1 Room1 = new Room1();
    public Form1()
    {
        InitializeComponent();
        PlayArea.Text = "Welcome to the Game! Would you like to start?";
        Game();
    }
    private void Game()
    {
        PlayArea.Text = "Welcome Back!";
        button1.Text = "Start?";
        button1.Click += Button1_Beginning;
        void Button1_Beginning(object sender, EventArgs e)
        {
            button1.Click -= Button1_Beginning;
            FirstRoom();
        }
    }
    private void FirstRoom()
    {
        PlayArea.Text = Room1.Description;
        button1.Text = "ClickMe!";
        button1.Click += Button1_FirstRoom;
        void Button1_FirstRoom(object sender, EventArgs e)
        {
            PlayArea.Text = String.Empty;
        }
        button2.Text = "Return";
        button2.Click += Button2_FirstRoom;
        void Button2_FirstRoom(object sender, EventArgs e)
        {
            button1.Click -= Button1_FirstRoom;
            button2.Click -= Button2_FirstRoom;
            ClearButtonText();
            Game();
        }
    }
    private void ClearButtonText()
    {
        foreach (var button in Controls.OfType<Button>())
        {
            button.Text = string.Empty;
        }
    }

На данный момент некоторые вещи активируются кнопками, моя цель - удалить их, а большинство вещей активировать с помощью гиперссылок.

Есть идеи как этого добиться?

0 ответов

Другие вопросы по тегам