<style type='text/css'> #doc{ font-family:'Fira Code','Noto Sans CJK TC Regular','微軟正黑體' !important; } </style> # 200519程二練習 ###### tags: `教學` ## Listbox、RadioButton 題目:網購配送選項 - 付款方式 - 超商貨到付款選擇後 - 「配送時段」無法選擇、 - 「配送選項」無法選擇 - 宅配貨到付款選擇後, ![](https://i.imgur.com/EMNWklE.png) - 「配送時段」Groupbox可選擇時段。 - 「配送選項」Groupbox不顯示。 - 信用卡付款、銀行轉帳、Paypal國際付費選擇後 - 需要再選擇「配送選項」,如果選擇宅配,則一樣要選擇「配送時段」 ![](https://i.imgur.com/2zTaEZS.png) - 付款方式、配送選項、配送時段皆須將選擇的類型show在label中。 ## DropDrog演練 [逐步解說:在 Windows Form 中執行拖放作業](https://docs.microsoft.com/zh-tw/dotnet/framework/winforms/advanced/walkthrough-performing-a-drag-and-drop-operation-in-windows-forms) ### 技巧、必要事項 以下將「被拖放控制項」稱A,「拖放控制項」稱B * B控制項的`AllowDrop`設置為`true` ```csharp B.AllowDrop=true; ``` 預設原本為`false`,為了安全性 * A控制項要有一個「觸發拖曳」的事件 可以是MouseDown、MouseMove、MouseEnter ```csharp A.MouseDown += A_MouseDown; //繫結function到控制項 private void A_MouseDown(object sender, MouseEventArgs e) { DoDragDrop(object data, DragDropEffects allowedEffects); //object data可以是任何型別,舉凡String、char,甚至是Color //DragDropEffects 可以是all、copy、move等 } ``` * B控制項加上兩個事件:DragEnter、DragDrop * DragEnter 發生於物件拖曳至控制項邊框時發生 ```csharp B.DragEnter += B_DragEnter; private void B_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { //以text為範例 if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; } ``` * DragDrop 發生於拖放作業完成時 ```csharp B.DragDrop += B_DragDrop; private void B_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { e.Data.GetData(DataFormats.Text); // e.Data.GetData(typeof(Object)); } ```
{"metaMigratedAt":"2023-06-15T08:24:19.235Z","metaMigratedFrom":"Content","title":"200519程二練習","breaks":true,"contributors":"[{\"id\":\"dd2f45ec-94d9-462f-b7a9-354dd49c4081\",\"add\":2207,\"del\":336}]"}
    547 views