Windows设计作业之记事本的实现(可以访问网页,支持markdown语法)

功能说明:

实现了一个简单的记事本功能,具有选择字体等基本编辑功能,并支持markdown语法,可以实时渲染markdown格式的文本。还具有网页访问功能,可以让用户输入网址并访问网页。这样用户可以通过同一个应用程序方便地进行文本编辑和浏览网页。

设计流程:

关键源码展示:

 渲染richtextbox的文字为markdown效果并显示在webbrowser:

            // 使用 MarkdownSharp 库将 RichTextBox 中的 Markdown 转换为 HTML
            MarkdownSharp.Markdown markdown = new MarkdownSharp.Markdown();
            string html = markdown.Transform(rtxtNotepad.Text);

            // 在 WebBrowser 控件中显示 HTML
            webBrowser1.DocumentText = html;

获取textbox的文本内容,并以url形式解析链接,显示在webbrowser控件

               webBrowser1.Navigate(textBox1.Text);

保存文件:

                if (b == true && rtxtNotepad.Modified == true)
            {
                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                s = true;
            }
            else if (b == false && rtxtNotepad.Text.Trim() != "" &&
                sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SaveFile(sdlgNotepad.FileName);//保存语句
                s = true;
                b = true;
                odlgNotepad.FileName = sdlgNotepad.FileName;

打开新的文件,若此时没保存此文件,则弹出提示:

        if (b == true || rtxtNotepad.Text.Trim() != "")
            {
                if (s == false)
                {
                    string result;
                    result = MessageBox.Show("文件尚未保存,是否保存?",
                        "保存文件", MessageBoxButtons.YesNoCancel).ToString();
                    switch (result)
                    {
                        case "Yes":
                            if (b == true)
                            {
                                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                            }
                            else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
                            {
                                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                            }
                            s = true;
                            break;
                        case "No":
                            b = false;
                            rtxtNotepad.Text = "";
                            break;
                    }
                }
            }
            odlgNotepad.RestoreDirectory = true;
            if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
            {
                rtxtNotepad.LoadFile(odlgNotepad.FileName);//打开代码语句
                b = true;
            }
            s = true;

总结:

一、Windows的窗体开发,与安卓开发的不同是:安卓的界面构建是通过语句生成界面,而Windows界面开发是通过拖拽控件,设置控件属性,来实现页面效果,并生成相关界面设计代码;同时,Windows的控件点击效果等等交互,是自动生成一个相关函数,开发人员在函数内写代码, 这样维护代码更加直观简单(点击控件进去维护就好了),但可能带来代码架构逻辑不明相关的问题

相同的是,他们都是通过一个特定的控件id值获取控件,并利用各类基本方法实现复杂的效果,如果学过安卓或是Windows,上手另外一个并不会太难。

二、此次我还要学到的就是不管在Windows还是安卓,合理使用第三方库都是开发人员要必备的技能,Windows的第三方库由nuget里面,对开发人员很方便,安卓是利用gradle。此次用到的webbrowser库,就可以提供丰富的功能(渲染markdown语法,显示网页),并且提供了简单的接口来调用。

实现效果截图:

 源码开源地址:

xiamuaila/WindowsNotePadSuportMarkDown (github.com)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏目艾拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值