發表文章

目前顯示的是有「C# Windows Form」標籤的文章

C#_Winform_兩個Form之間想利用共同Class所建立的屬性傳值程式如何撰寫運作問題探討

圖片
在大概2016也就是一年前 曾經解決過有人對於  C# 視窗傳遞數值問題 C#_WindowsForm_跳頁x單向傳遞資料寫法_雙向傳遞資料筆記 http://coolmandiary.blogspot.tw/2016/08/cwindowsformx.html 那有需要前情回顧的朋友可以再去看看 在上一篇我將所要探討的主要問題 切分為三階段 我先嘗試解決看看如何做 1.兩個視窗的跳換 功能有了之後再嘗試看看 2.單向傳值(從Form1傳值到Form2) 最後返回來將功能給完整 3.雙向傳值 那在這陣子一個開發朋友 又在社團有遇到一個有趣的設計問題 好他主要是想要透過另一種設計方法 做兩個視窗數值的傳遞 他想要於方案中的專案中 設立 三個檔案 Form1、Form2、Class檔 那該  Class檔  特別的地方在於用來 設計為 會用到的所有屬性 在Form1中呼叫Class中的屬性進行Set 那麼如何在 Form2中取得在Form1中所Set Class後的值 呢? 這個朋友他說他參考了非常多範例 都是直接在Form表單內上面建立Class再進行呼叫 所以不需New出一個新物件 那這裡 提問的開發朋友有提供他寫的一小串程式碼 尋求幫助 Class1的程式檔內容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Class1 { string str_i; public string Str_i { get { return str_i; } set { str_i = value ; } } } 好那這裡呢....由於沒有排版不是很好看 抱歉有點龜毛XDD 所以再重新排版一下 Notepad++  一直以來是我們的好朋友 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Class1 { string str_i; public string Str_i { get { return str_...

Photobooth專案_第一階段_介面_一個視窗設計上的要求_不能有上方工作列_希望跳頁不是關閉視窗又產生一個新的

圖片
校外 工作要求: 執行效果順序 先跳出  photo booth 的 封面 過個幾秒自動跳至下一畫面 緊接著 跳至 給別人選擇相框樣式的畫面 右上角有個會計數的東西 使用者使用滑鼠進行選取相框的動作 選好後跳至下一畫面 進行拍照流程 每隔十秒做一次更新 拍好之後 顯示給使用者作檢閱看滿不滿意 如果不滿意就有個  回去重拍的按鈕 滿意就按跳至下一頁面 緊接著進行存檔 程式就結束  完成其工作流程 =========================== 特殊要點    這次需結合Kinect V2的背景移除 效果 而且再添加相框 介面布局規範 (1) 要能夠跳頁(但是不能產生新視窗的要在同一個面板做跳頁) (2) 不能出現上方醜醜的狀態列(放大、縮小、關閉) 先解決 取消秀出上方狀態標題列 視窗去右側 --> 屬性  --> 勾消 FormBorderStyle 再來是同一面板上 的 分頁跳動 設計 首先跟大家介紹一個東西叫做   Panel  這個組件  可以協助我們完成在同一個面板做跳頁喔!!! 捨麼!!!!!真的嗎??? 【Panel1】無 首先我把視窗介面的背景換成一個符合專案主題的圖片素材 之後上方可能會插入  類似 Photo Booth 等 創意互動相框 字眼 這裡我是把Panel 疊在上面喔 【Panel2】 兩個 pictureBox 這裡我們要繼續做  第二分頁 用來秀我們的Kinect V2 背景移除效果的影像 這裡我們要進行兩個不同背景環境效果的融入選擇 這裡我將第二個  Panel 疊在上方 改為  富士山作為背景 在上方  放兩個  pictureBox 組件 供使用者選擇 K...

C#_get_set存取器

圖片
在C#中 對於存取private 變數有特殊語法存在~~ 在上篇文章中我們學到了如果想要防止外面的人 對我們的class做些 不正當操作 【Solution】:先把這個變數用private藏在class中 在提供一些  public method 當作中間人(與外部溝通的橋樑) 讓大家進行操作與檢視 這是上次的寫法 Class部分 主程式部分 現在要和大家分享另一個寫法 寫法一般是 存取修飾子  變數型別  變數名稱 {         get{   return ..... ;}         set{                   if(....)                      .......;                   else                       ...... ;              } } 以下面來說 就是更改User  的  Class 建立一個叫做 HP的屬性 在細微一點的解釋就是指 User這個類別  使用了 hp 這項 private 欄位(成員變數) 建立出了 HP屬性 這種特別的寫法就稱為 Accessors(存取器) 擁有   get  以及  set 兩塊程式Block的存取器 get :  主要負責取得 欄位的值---->return一個值           ...

C#_封裝性 Public vs Private_private用途_可遠觀而不可褻玩焉

圖片
public : 任何人可以任意觀看、使用以及修改的事物 private : 只有自己才能夠觀看、使用以及修改的事物 平常你可能會偷存一點私房錢 你希望這筆錢的數目和使用都只有自己使用 是一個  private~~~~ 或者在上   fb 、  twitter之類 都可申請帳號    然後都有密碼 只有自己才可登入 password   你也不希望 任何人都可觀看修改和使用 也是一個  private~~~~~ 這裡我們新建一個新的   class 叫做   User ====================================================================== 當我建好物件 要引用的時候  會有找不到passWord屬性的情形 就是因為設置成  private了 若應用 會出現 passWord的保護層級會導致無法對其進行存取的錯誤 為捨麼要設置成private??? 情境 1.不能給他人看到以及修改 我們在寫一些  跟銀行帳號有關的 class 我們就需要 設置成private不然會有危險 不然就會有危險!!!! 如果要比對密碼的時候 我們可能就會需要再多寫一個  public method  來做比對 情境 2.有些property只想讓別人看到但是不能讓他人修改 (唯讀) 像是帳號  通常聲請完就固定了 通常 只能看  不能修改 我們把   username 設置成  private 看看 所以現在無法在外(其他區塊)對它進行修改了 我們現在要做的就是帳號讓人無法修改但是可以看的到 無法讓人修改  就將 property 改成 private 至於 秀出來就寫一個  public method 去秀即可!!!! 主程式碼  Program.cs using System; using Syste...