天天看点

C#学习时做的小App,支持复制翻译,采用Google引擎

学习总结

通过这个项目,学到了很多:

  1. VS2012的安装及使用,耗费1小时
  2. VS2012如何引用第三方dll库
  3. VS2012怎么合并dll库到exe程序中,耗费2小时
  4. C#的Http网络请求,耗费1天
  5. 在VS2012中开发Window窗口程序
  6. C#的委托,接口,命名空间,回调,多线程,
  7. C#的数据存储:数据库存储,ini键值对存储
  8. C#的正则表达式
  9. C#的剪切板操作
  10. C#实现开启自启
  11. C#的窗口置顶及不获取焦点及最小化,任务栏隐藏,和 通知栏显示,耗费1天
  12. C#窗口的移动,平滑移动,贴边隐藏,耗费1天
  13. C#的焦点问题,耗费1天
  14. C#的单例运行
  15. C#制作第三方库

详细讲解

1.VS2012的安装

我是直接安装下图中公众号的讲解安装的,没遇到一点问题,安装环境:Win8.1。这个公众号做得的却不错,值得推荐!

C#学习时做的小App,支持复制翻译,采用Google引擎

2. VS2012引用第三方库

废话不多说,直接看下方gif最清楚:

C#学习时做的小App,支持复制翻译,采用Google引擎

3.VS2012怎么合并dll库到exe程序中

参考:https://www.cnblogs.com/mq0036/p/7875843.html

若是显示您的nuget不是最新版,最好更新到最新版,

更新教程:https://www.cnblogs.com/abeam/p/7158179.html

4.C#的Http网络请求

我写了一个Http工具类,当然也是在别人源码基础上写的,修复了其中一些问题,因源码太长,放在这里不合适,可以在下方直接下载工程即可,这里只贴一下测试例子:

public static void test()
        {
            //测试GET方式,例子:获取google翻译
            HttpHelper.getAsync("https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=" + "zh" + "&dt=t&q=" + "good", new HttpGetListener());
            //测试POST方式,例子:获取天气
            //设置参数
            var param = new
            {
                code = "js",
                day = 0,
                dfc = 1,
                charset = "utf-8"
            };
            var postData = JsonConvert.SerializeObject(param);
            HttpHelper.postAsync("http://php.weather.sina.com.cn/iframe/index/w_cl.php", postData, new HttpPostListener());
        }
        public class HttpGetListener : HttpHelper.OnHttpListener
        {
            public void onSuccess(string data)
            {
                Console.WriteLine("GET请求返回数据:" + data);
                JArray jo = (JArray)JsonConvert.DeserializeObject(data);
                Console.WriteLine("GET请求解析数据:" + jo[0][0][0].ToString());
            }
            public void onError(string data)
            {
                Console.WriteLine("get error:" + data);
            }
        }
        public class HttpPostListener : HttpHelper.OnHttpListener
        {
            public void onSuccess(string data)
            {
                Console.WriteLine("POST请求返回数据:" + data);
            }
            public void onError(string data)
            {
                Console.WriteLine("post error:" + data);
            }
        }
           

5.C#的ini键值对数据存储

ini数据存储的特点就是读写简单,适合存储一些简单类型数据。

同样源码太多,这里只贴出测试例子:

实现在当前目录下创建一个settings.ini文件,并将当前月的天数存储Section为int的time值中。

IniSharedPreferences prefs = new IniSharedPreferences("settings");//创建
            IniSharedPreferences.Editor editor = prefs.edit();
            editor.putInt("time", DateTime.DaysInMonth(2018, 10));//存储
           

由于时间问题,今天就先写到这。。。未完待续

工程下载地址

https://download.csdn.net/download/qq_26914291/10751959