最近有個 pad 上的 APP 開發,聽到 APP 這個詞,而後就把它安排給我作了,但是那個 pad 裝的是Windows系統,我是 Android 開發啊。json
無奈的我只能搞唄。如下不是專業的教程,只是本身學習的記錄。不適合系統學習,適合快速上手。(如下內容也是百度的結果,若有錯誤,敬請指正)設計模式
IDE:Visual Studio (我用的是2019的)api
項目:Windows 窗體應用(.Net Framwork)網絡
①打開From1,處於設計模式,左邊會有個工具欄。展開全部 Windows 窗體,下面有控件。app
②沒有工具箱,找到菜單欄 視圖 >> 工具箱。工具
將控件拖到窗口中,右擊屬性,在右邊能夠看到對應的屬性,點擊屬性下方會有屬性說明,下方包括顯示文本,背景,控件名稱,顯示位置等基本設置,能夠進行拖動排放位置post
密碼輸入框,輸入內容顯示 *(如何想要顯示 其餘樣式,能夠自行設置)學習
>效果this
⭐打開屬性,切換到閃電,下方有不少事件,找到Click 雙擊後面,自動生成點擊事件並跳轉到click方法spa
圖標的顯示模式,是否縮放,適應控件。
新建Form2:右擊》》添加》》新建項》》窗體
找到按鈕的對應的點擊事件
private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); }
評論補充:花落心語
this.Close();
①在App.config中添加
<appSettings>
<add key="userName" value="admin"/>
<add key="userPwd" value="1"/>
</appSettings>
②讀取存儲的值和修改存儲的值公共方法(能夠發到工具類中)
/// <summary>
/// 更新設置 /// </summary>
/// <param name="settingName"></param>
/// <param name="valueName"></param>
public static void UpdateSettingString(string settingName, string valueName) { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (ConfigurationManager.AppSettings[settingName] != null) { config.AppSettings.Settings.Remove(settingName); } config.AppSettings.Settings.Add(settingName, valueName); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } /// <summary>
/// 讀取設置 /// </summary>
/// <param name="settingName"></param>
/// <returns></returns>
public static string GetSettingString(string settingName) { try { string settingString = ConfigurationManager.AppSettings[settingName].ToString(); return settingString; } catch (Exception) { return null; } }
🌂調用方法讀取修改
//讀取用戶名
GetSettingString("userName")
//修改用戶名
UpdateSettingString("userName", {{新的用戶名}});
this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized;
在文件資源管理器中打開文件夾,找到 bin 文件找到 debug,將真個debug文件夾拷貝到其餘電腦上,debug裏面有一個 .exe 文件,運行就這個文件就能看到效果
①正常設計時,你覺得這樣就佔滿了嗎
②實際上效果
🌂解決方法(將Anchor屬性的設置爲 Top ,Left,Right)
④最後效果
因爲這裏有多個控件,咱們引入一個 panel 的控件,🐖這裏要將其餘控件拖動到這個 panel 控件中,若是選中 panel拖動是,其餘控件跟着拖動就表明
控件在panel 的內部,再將panel Anchor屬性設置爲 None,點擊黑色的方塊能夠去掉,這樣很大的屏幕也會顯示在屏幕中間。能夠直接選中全部控件進行設置Anchor 爲 None
寫一個網絡請求的幫助類
class HttpHelper { //TCP/IP 3次握手 //第1個參數是請求類型,第2個參數是API方法名,第3個參數是傳送的對象
public static string GetAPIData(string requestType, string actionname, Dictionary<string, string> obj = null) { //實例化HttpClient
HttpClient hc = new HttpClient(); //設置API地址
hc.BaseAddress = new Uri("http://"+ShareUtils.getNetIp()+":"+ShareUtils.getNetPort()+"/api/default/"); //建立一個任務獲取服務端返回的結果;
Task<HttpResponseMessage> task = null; //第1次握手發送請求
HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(obj)); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); switch (requestType) { case "get": task = hc.GetAsync(actionname); break; case "post": task = hc.PostAsync(actionname, httpContent); break; case "put": task = hc.PostAsync(actionname, new FormUrlEncodedContent(obj)); break; case "delete": task = hc.DeleteAsync(actionname); break; } task.Wait(); //第2次握手 接收數據
if (task != null) { //第3次握手 檢查數據包
if (task.Result.IsSuccessStatusCode) { //把XML轉換爲字符串
var strtask = task.Result.Content.ReadAsStringAsync(); strtask.Wait(); //轉換結果
return strtask.Result; } } return ""; } }
⭐這裏也是網上找的,而後修改了一下,請求類型不一樣,寫法上應該有點區別 這裏是 content_type 爲 application/json ,若是content-type爲form表單提交能夠直接使用 FormUrlEncodedContent
editText.Focus();
🐖雖然是一個APP可是每個窗體他們的宿主都是Windows,致使兩個窗體能夠平行顯示,這個在手機APP咱們就不會遇到,若是在開啓其餘Form 把其餘Form 給關閉,但 主入口窗體一旦關閉,全部窗體就都退出來了,目前還未解決。
下方來自大佬的評論解答:花落心語
我把APP顯示設置成全屏顯示,同時在應用運行時其餘應用的顯示層都在APP的下方致使看不到,此時我恰好在調試狀態,致使我沒法調用IDE的顯示界面,讓斷點過去,同時個人APP在進入了斷點,就沒法操做狀態。任務管理器也被遮擋。最終重啓了電腦。⚡