電腦上的APP 從零開始 WinForm

  最近有個 pad 上的 APP 開發,聽到 APP 這個詞,而後就把它安排給我作了,但是那個 pad 裝的是Windows系統,我是 Android 開發啊。json

  無奈的我只能搞唄。如下不是專業的教程,只是本身學習的記錄。不適合系統學習,適合快速上手。(如下內容也是百度的結果,若有錯誤,敬請指正)設計模式

  

1、我用什麼IDE建什麼樣的項目?

  IDE:Visual Studio (我用的是2019的)api

  項目:Windows 窗體應用(.Net Framwork)網絡

  

  

 

 2、如何畫界面,添加控件?

  ①打開From1,處於設計模式,左邊會有個工具欄。展開全部 Windows 窗體,下面有控件。app

  

  ②沒有工具箱,找到菜單欄   視圖  >> 工具箱。工具

  

 

3、textview 顯示文本的控件 Label 的使用,如何設置控件的屬性?

  將控件拖到窗口中,右擊屬性,在右邊能夠看到對應的屬性,點擊屬性下方會有屬性說明,下方包括顯示文本,背景,控件名稱,顯示位置等基本設置,能夠進行拖動排放位置post

  

   

   

 

4、editText 輸入框採用什麼控件? TextBox 

  密碼輸入框,輸入內容顯示 *(如何想要顯示 其餘樣式,能夠自行設置)學習

>效果this

 

5、如何設置點擊事件? Button 

  ⭐打開屬性,切換到閃電,下方有不少事件,找到Click 雙擊後面,自動生成點擊事件並跳轉到click方法spa

  

  

 

6、imageview對應的顯示圖標控件? PictureBox 

  圖標的顯示模式,是否縮放,適應控件。

 

 

 

 

 

 

7、登陸成功如何跳轉頁面?

  新建Form2:右擊》》添加》》新建項》》窗體

  找到按鈕的對應的點擊事件

    private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); }

  評論補充:花落心語

  

 

 8、如何關閉當前窗口?

this.Close();

 

 9、有多個窗口,如何設置應用主入口

  

 

10、如何像sharepreferences同樣保存本地數據(保存用戶名和密碼)

  ①在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", {{新的用戶名}});

 

11、如何設置窗口全屏顯示?(把這個代碼放在頁面加載的方法中)

  this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized;

 

12、如何把作的效果在別的電腦上顯示?(這裏多是調試)

  在文件資源管理器中打開文件夾,找到 bin 文件找到 debug,將真個debug文件夾拷貝到其餘電腦上,debug裏面有一個 .exe 文件,運行就這個文件就能看到效果

  

   

    

   

 

十3、如何讓控件橫向充滿屏幕 (match_prarent)

  ①正常設計時,你覺得這樣就佔滿了嗎

  

  ②實際上效果  

 

   🌂解決方法(將Anchor屬性的設置爲 Top ,Left,Right)

 

 

   ④最後效果

 

十4、能夠看到全屏以後原先登陸退出,輸入框按鈕放在中間位置也不在中間位置了,那麼如何將控件顯示到屏幕中間?

  因爲這裏有多個控件,咱們引入一個 panel 的控件,🐖這裏要將其餘控件拖動到這個 panel 控件中,若是選中 panel拖動是,其餘控件跟着拖動就表明

 

控件在panel 的內部,再將panel Anchor屬性設置爲 None,點擊黑色的方塊能夠去掉,這樣很大的屏幕也會顯示在屏幕中間。能夠直接選中全部控件進行設置Anchor 爲 None

  

 

 

 

 

十5、如何進行網絡請求?HttpClient

  寫一個網絡請求的幫助類

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 

 

十6、輸入框獲取焦點?

editText.Focus();

 

十7、【未解決問題】一個APP可是多個窗體共存

  🐖雖然是一個APP可是每個窗體他們的宿主都是Windows,致使兩個窗體能夠平行顯示,這個在手機APP咱們就不會遇到,若是在開啓其餘Form 把其餘Form 給關閉,但 主入口窗體一旦關閉,全部窗體就都退出來了,目前還未解決。

下方來自大佬的評論解答:花落心語

  

 

 

十8、【遇到的尷尬】遮擋在其餘應用上方

  我把APP顯示設置成全屏顯示,同時在應用運行時其餘應用的顯示層都在APP的下方致使看不到,此時我恰好在調試狀態,致使我沒法調用IDE的顯示界面,讓斷點過去,同時個人APP在進入了斷點,就沒法操做狀態。任務管理器也被遮擋。最終重啓了電腦。⚡

相關文章
相關標籤/搜索