winform 多个子项目以及调用方法 (类库)

第一步:创建多个项目

首先、正常创建一个winform工程

 新增子项目

 选择 “类库”,修改下面名称为 “工程1”,点击确定。

 这样我们项目下面就会多个出来一个新项目 “工程1”。

 

在 “工程1” 里面加入一个窗体 Form_gongcheng1

在窗体中添加 label,修改文字

 

第二步:调用其他项目中的窗体

在主程序中添加 “引用”

在我们主程序的窗体中,添加按钮, 点击按钮调用 “工程1” 中的窗体

 添加 “工程1” 的引用 ,调用 Form_gongcheng1

 

 这样就能调用其他项目中的 窗体、类等。

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在你的 WinForm 项目中添加一个文件,命名为 HttpHelper.cs。然后,你可以按照以下步骤来编写 Http 协议类库: 1. 引入命名空间 在 HttpHelper.cs 文件的开头,添加以下代码: ```csharp using System; using System.IO; using System.Net; using System.Text; ``` 这些命名空间将提供我们需要的方法。 2. 编写发送 Http 请求的方法 添加以下代码: ```csharp public static string SendHttpGetRequest(string url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Timeout = 5000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); return reader.ReadToEnd(); } } ``` 这个方法会发送一个 GET 请求,并返回响应内容的字符串。 3. 编写发送 Http POST 请求的方法 添加以下代码: ```csharp public static string SendHttpPostRequest(string url, string postData) { byte[] data = Encoding.UTF8.GetBytes(postData); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Timeout = 5000; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); return reader.ReadToEnd(); } } ``` 这个方法会发送一个 POST 请求,并返回响应内容的字符串。 4. 编写上传文件的方法 添加以下代码: ```csharp public static string UploadFile(string url, string filePath, string fileFieldName, string[] strings) { string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Timeout = 5000; request.ContentType = "multipart/form-data; boundary=" + boundary; using (Stream stream = request.GetRequestStream()) { // 写入字符串参数 foreach (string str in strings) { byte[] bytes = Encoding.UTF8.GetBytes("--" + boundary + "\r\n"); stream.Write(bytes, 0, bytes.Length); bytes = Encoding.UTF8.GetBytes("Content-Disposition: form-data; name=\"" + str.Split('=')[0] + "\"\r\n\r\n"); stream.Write(bytes, 0, bytes.Length); bytes = Encoding.UTF8.GetBytes(str.Split('=')[1] + "\r\n"); stream.Write(bytes, 0, bytes.Length); } // 写入文件 byte[] fileBytes = File.ReadAllBytes(filePath); byte[] endBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); string fileHeader = string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n", fileFieldName, Path.GetFileName(filePath)); byte[] fileHeaderBytes = Encoding.UTF8.GetBytes(fileHeader); stream.Write(Encoding.UTF8.GetBytes("--" + boundary + "\r\n"), 0, Encoding.UTF8.GetByteCount("--" + boundary + "\r\n")); stream.Write(fileHeaderBytes, 0, fileHeaderBytes.Length); stream.Write(fileBytes, 0, fileBytes.Length); stream.Write(endBytes, 0, endBytes.Length); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.UTF8); return reader.ReadToEnd(); } } ``` 这个方法会上传一个文件,并带上一些字符串参数。其中,fileFieldName 参数指定了文件在服务器上的字段名,strings 参数指定了其他的字符串参数。 5. 使用类库发送 Http 请求 现在,你已经编写好了一个简单的 Http 协议类库。你可以在你的 WinForm 项目中使用它来发送 Http 请求。 例如,你可以在按钮的 Click 事件中添加以下代码: ```csharp private void button1_Click(object sender, EventArgs e) { string url = "http://www.example.com/api/test"; // 发送 GET 请求 string response1 = HttpHelper.SendHttpGetRequest(url); // 发送 POST 请求 string postData = "username=admin&password=123456"; string response2 = HttpHelper.SendHttpPostRequest(url, postData); // 上传文件 string filePath = @"C:\Users\Administrator\Desktop\test.jpg"; string[] strings = new string[] { "uid=1", "token=abc123" }; string response3 = HttpHelper.UploadFile(url, filePath, "file", strings); } ``` 这个例子展示了如何发送 GET 请求、POST 请求和上传文件。你可以根据自己的需求来使用这个类库

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值