成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#定義事件應(yīng)用

開發(fā) 后端
本文介紹C#定義事件應(yīng)用,從據(jù)庫中讀取相關(guān)的資料,生成具有幾格幾層的二維貨架圖形.由于貨架的通過幾層用戶控件來實現(xiàn)的。

C#定義事件應(yīng)用

最近公司在上一個wpf項目,熟悉WPF的同學(xué)都知道,WPF控件中,"用戶控件"這個概念非常常見,我們也經(jīng)常要做一些用控件來實現(xiàn)一些相對比較復(fù)雜的功能,比如:一個二維的倉庫管理系統(tǒng),倉庫中的貨架可以做成一個用戶控件,而貨架中的某個貨架層,貨架層中的某個貨格,其實都可以是一個用戶控件, 我們在畫具體的某個貨架的時候,就可以根據(jù)這個貨架的實際情況,從據(jù)庫中讀取相關(guān)的資料,生成具有幾格幾層的二維貨架圖形.由于貨架的通過幾層用戶控件來實現(xiàn)的,有時候我們需要在它們"層次"中傳遞消息,比如,我的某個貨格的信息變動了,需要通知整個貨架,甚至是加載這個貨架的某個窗口,這時候就可以C#定義事件應(yīng)用來完成了,從觸發(fā)事件的某一"層"起,往上拋出事件,父控件接收事件,然后接著往上拋,一直到接收這個事件的某"層"做出具體的事件處理.
本人才疏學(xué)淺,不當(dāng)之處還望大蝦們多多包含!

首先我們做一個簡單的用戶控件,模擬在***層觸發(fā)事件的圖形控件:

  1. <UserControlx:ClassUserControlx:Class="WpfApplication5.uc1" 
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4. Height="60"Width="200"> 
  5. <Grid> 
  6. <RectangleFillRectangleFill="Bisque"></Rectangle> 
  7.  
  8. </Grid> 
  9. </UserControl> 
  10.  
  11. usingSystem;  
  12. usingSystem.Collections.Generic;  
  13. usingSystem.Linq;  
  14. usingSystem.Text;  
  15. usingSystem.Windows;  
  16. usingSystem.Windows.Controls;  
  17. usingSystem.Windows.Data;  
  18. usingSystem.Windows.Documents;  
  19. usingSystem.Windows.Input;  
  20. usingSystem.Windows.Media;  
  21. usingSystem.Windows.Media.Imaging;  
  22. usingSystem.Windows.Navigation;  
  23. usingSystem.Windows.Shapes;  
  24.  
  25. namespaceWpfApplication5  
  26. {  
  27. ///<summary> 
  28. ///Interactionlogicforuc1.xaml  
  29. ///</summary> 
  30. publicpartialclassuc1:UserControl  
  31. {  
  32. publicuc1()  
  33. {  
  34. InitializeComponent();  
  35. }  
  36.  
  37. privatestring_name;  
  38.  
  39. publicstringName  
  40. {  
  41. get;  
  42. set;  
  43. }  
  44. }  
  45. publicclassuc1ClickEventArgs  
  46. {  
  47. publicstringName  
  48. {  
  49. get;  
  50. set;  
  51. }  
  52. }  

uc1ClickEventArgs 類是一個自定義事件參數(shù)類,用來裝這個控件的一些信息,供它的上級容器調(diào)用.

再下來也是一個用戶控件,用來裝多個上面圖形控件,比如我們可以把它看成是某個貨格,而下面就是一個貨架,我采用最基本的循環(huán)來生成幾個上圖中的用戶控件:

  1. <UserControlx:ClassUserControlx:Class="WpfApplication5.whs_map" 
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4. xmlns:local="clr-namespace:WpfApplication5" 
  5. Height="300"Width="600"Loaded="UserControl_Loaded"> 
  6. <Grid> 
  7. <Canvasx:NameCanvasx:Name="pa"></Canvas> 
  8. </Grid> 
  9. </UserControl> 
  10.  
  11. Code  
  12. usingSystem;  
  13. usingSystem.Collections.Generic;  
  14. usingSystem.Linq;  
  15. usingSystem.Text;  
  16. usingSystem.Windows;  
  17. usingSystem.Windows.Controls;  
  18. usingSystem.Windows.Data;  
  19. usingSystem.Windows.Documents;  
  20. usingSystem.Windows.Input;  
  21. usingSystem.Windows.Media;  
  22. usingSystem.Windows.Media.Imaging;  
  23. usingSystem.Windows.Navigation;  
  24. usingSystem.Windows.Shapes;  
  25.  
  26. namespaceWpfApplication5  
  27. {  
  28. ///<summary> 
  29. ///Interactionlogicforwhs_map.xaml  
  30. ///</summary> 
  31. ///  
  32.  
  33. publicdelegatevoidtestDelegate(objectsender,uc1ClickEventArgse);  
  34.  
  35.  
  36. publicpartialclasswhs_map:UserControl  
  37. {  
  38. publicwhs_map()  
  39. {  
  40. InitializeComponent();  
  41. }  
  42.  
  43. privateeventtestDelegate_testEvent;  
  44.  
  45. publiceventtestDelegatetestEvent  
  46. {  
  47. add  
  48. {  
  49. _testEvent+=value;  
  50. }  
  51. remove  
  52. {  
  53. _testEvent-=value;  
  54. }  
  55. }  
  56.  
  57. privatevoidUserControl_Loaded(objectsender,RoutedEventArgse)  
  58. {  
  59. intleft=5;  
  60. inttop=1;  
  61.  
  62. for(inti=0;i<5;i++)  
  63. {  
  64. uc1uc=newuc1();  
  65. uc.MouseLeftButtonDown+=newMouseButtonEventHandler(mouseDown);  
  66.  
  67. uc.Name=i.ToString();  
  68. pa.Children.Add(uc);  
  69.  
  70. Canvas.SetTop(uc,top);  
  71. Canvas.SetLeft(uc,left);  
  72.  
  73. left+=205;  
  74. }  
  75. }  
  76.  
  77. publicvoidmouseDown(objectsender,MouseButtonEventArgse)  
  78. {  
  79. if(senderisuc1)  
  80. {  
  81. uc1uc=senderasuc1;  
  82.  
  83. uc1ClickEventArgse2=newuc1ClickEventArgs();  
  84. e2.Name=uc.Name;  
  85. _testEvent(this,e2);  
  86. }  
  87. }  
  88. }  

以上介紹C#定義事件應(yīng)用

【編輯推薦】

  1. C#字符串進(jìn)行分割
  2. 全面測試C#字符串
  3. C# out和ref傳遞數(shù)組
  4. 淺析C#定義整型數(shù)組
  5. C#數(shù)據(jù)庫連接字符串
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-09-07 04:19:56

C#窗體事件

2009-08-04 09:56:46

C#事件處理自定義事件

2009-09-03 15:46:57

C#自定義事件

2009-08-04 12:56:51

C#自定義事件

2009-08-04 12:40:34

c#自定義事件

2009-08-04 13:53:58

C#委托類C#事件

2009-08-31 16:37:20

C#接口定義

2009-08-04 13:31:35

C#自定義事件

2009-08-28 09:43:05

C#事件

2009-08-12 15:20:21

C#事件處理

2009-08-18 10:48:25

C#事件

2009-08-28 13:12:02

C# Page_Err

2009-08-27 18:02:22

C#事件處理

2009-08-13 10:42:31

C#窗體拖動事件

2009-08-12 18:28:09

C#事件處理程序

2009-09-07 15:31:49

C#支持事件

2011-04-25 09:22:44

C#事件

2009-08-28 14:28:25

C# Applicat

2009-09-10 18:18:42

C# Button

2024-04-28 10:58:00

C#編程窗口關(guān)閉事件
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品久久久久久一区二区 | 拍拍无遮挡人做人爱视频免费观看 | 欧美激情视频一区二区三区在线播放 | 波多野吉衣在线播放 | 久久久精彩视频 | 精品免费国产 | 欧美一级三级在线观看 | 欧美性jizz18性欧美 | 成人在线视频观看 | 羞羞视频在线观看网站 | 欧美无乱码久久久免费午夜一区 | 国产精品久久久久久久久久免费看 | 亚洲精品美女视频 | 国产精品a久久久久 | 欧美一区二区在线 | 日韩免费中文字幕 | 狠狠爱综合网 | 日韩久草| 99爱视频 | 日韩视频在线观看中文字幕 | 一级免费毛片 | 日本免费黄色一级片 | 伊人网综合 | 国产精品呻吟久久av凹凸 | 欧美在线天堂 | 国产精品一区二区三区四区五区 | 国产日韩欧美激情 | 中文字幕av一区 | 99久久精品视频免费 | 国产精品av久久久久久久久久 | 亚洲自拍偷拍免费视频 | 国产精品久久精品 | 超碰av在线 | 国产一区二区精品在线观看 | 成人在线视频网 | 真人一级毛片 | 91久久精品国产 | 亚洲免费成人 | 久久99国产精品久久99果冻传媒 | 激情网站在线 | 日本午夜视频 |