在RichTextBox C#中添加多个非url超链接以为每个事件抛出一个事件

时间:2018-08-01 17:31:00

标签: c# winforms richtextbox adventure

从上下文开始...我正在使用C#Windows Form制作一个Text Text游戏,因为我是一个初学者,这是我的理解。 (我不想使用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 个答案:

没有答案