版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、總結(jié)C#中窗體間傳遞數(shù)據(jù)的幾種方法 (由別人的方法整理) 在編寫C#windows應用程序的時候我們經(jīng)常會遇到這種問題,怎么樣在兩個窗體間傳遞數(shù)據(jù)呢?以下是我整理的網(wǎng)上的各種方法,在遇到一個實際問題:在form1中打開一個form2窗口作為錄入界面,將錄入的值經(jīng)轉(zhuǎn)換后在form1中顯示。 采用了委托的方法,可以實現(xiàn)。(與VC的回調(diào)的應用相似)1可以通過委托的方法來解決問題:通過form1做一個錄入界面,將里邊通過文本框錄入的數(shù)值復值給 form2中的listview各列,用3個textbox1.text舉例吧,分別對應listview的3個列??梢赃@么做,如果兩個窗體是
2、在同一個命名空間下定義一個代理,注意這個代理是全局的:(即同一命名空間下,與Form1,F(xiàn)orm2平級的)public delegate void MyInvoke(string Item1,string Item2,string Item3); /在窗體From2中有這么一個回調(diào)函數(shù),用于在ListView里添加一個新項的:private void UpdateListView(string Item1,string Item2,string Item3) ListView1.Items.Add(Item1);
3、 ListView1.ItemsListView1.Items.Count - 1.SubItems.Add(Item2); ListView1.ItemsListView1.Items.Count - 1.SubItems.Add(Item3); /比如說點擊Form2的一個按鈕彈出Form1進行錄入,在點擊按鈕的事件下:/把委托傳過去Form1 frmEdit=new Form1(new MyInvoke(UpdateListView);frmEdit.ShowDialog(this); /在Form1里定義一個屬性private M
4、yInvoke mi=null; 在構(gòu)造函數(shù)中接收這個委托:public Form1(MyInvoke myInvoke) this.mi=myInvoke; /錄入數(shù)據(jù)后,點擊OK按鈕,在點擊事件下:/回調(diào)this.mi(this.TextBox1.Text,this.TextBox3.Text,this.TextBox3.Text);this.Close();/關(guān)閉Form1補充:如果我要是想再把form2的值給form1,F(xiàn)orm1 frmEdit=new Form1(new MyInvoke(UpdateListView),string pa
5、ra1,string para2.);frmEdit.ShowDialog(this);然后將Form1的構(gòu)造函數(shù)改成可以接收幾個參數(shù)的就行了。 2假如主框架為Form1,打開的搜索對話框是Form2.直接在Form2類中申明一個Form1實例:Form1 f1=new Form1();然后就可以通過f1來調(diào)用Form1中的域和函數(shù)了。其實不是這樣的,你申明的新的Form1實例不是原來的那個Form1對象了,這樣操作的是新的Form1中的域和函數(shù),和最先打開的Form1是沒有關(guān)系的。我們要做的是把當前的Form1實例傳遞給Form2,如果是這樣的話,問題就很好解決了。 方法1:首先,
6、我們在Form2中定義: private Form1 mF_Form 我們更改Form2的構(gòu)造函數(shù)為有參數(shù)的 public Form2 ( Form1 myForm ) / / Windows 窗體設(shè)計器支持所必需的 / InitializeComponent ( ) ; this.mF_Form = myForm ; /這樣在Form1中申明Form2的時候就把Form1的實例傳遞過來了 / / TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼 / 在Form1中,我在 要用到Form2的地方申明如下: Form2 f2=
7、new Form2(this);/這里的this指的就是Form1當前的實例,也就是把當前Form1的實例通過Form2的構(gòu)造函數(shù)傳遞給Form2類(其實在網(wǎng)上看到過比較蠢的方式,就是在構(gòu)造函數(shù)里面?zhèn)鬟f要傳遞的信息如:字符串或是數(shù)字等,這樣做很有局限性,不能傳遞其他的,所有我們可以直接傳遞實例,來完成傳遞更多的信息。) 這樣在Form2中使用myForm 就可以對原來的Form1窗口進行操作了。但是你要把要操作的Form1中的域和函數(shù)定義成public形式的(這樣可能不安全),此時的myForm就是真正的最開始打開的Form1了,你可以用這個實例來進行兩個窗體的通訊了。 ()3其實
8、C#中提供了窗體間進行通訊的現(xiàn)成的屬性,呵呵,我們能想到的,微軟也想到了,他們創(chuàng)造的語言其實確實可以說是人性化了。 在Form1類中申明Form2時用如下代碼: Form2 f2=new Form2();/類Form2中的構(gòu)造函數(shù)不改,還是無參的 f2.owner=this;/這里的this指的是類Form1當前的實例。 /也可以使用函數(shù)的方法,給當前實例添加一個附屬窗口 代碼:this.AddOwnedForm(f2); 在Form2類的定義中寫如下代碼: Form1 f1=this.owner; 這樣f1對應的就是原來的Form1的實例了,也就可以用這個進行通訊了。但是還是要把
9、不同類之間訪問的域和函數(shù)定義成public,哎,安全確實是一個問題! 4使用靜態(tài)類 這個也是我們經(jīng)常要用到的一種數(shù)據(jù)交互方法。下面是定義的一個類:using System;using System.Collections;namespace ZZ public class AppDatas private static ArrayList l
10、istData; static AppDatas() listData = new ArrayList();
11、; listData.Add("DotNet"); listData.Add("C#"); listData.Add("A");
12、160; listData.Add("WebService"); listData.Add("XML"); public static ArrayLi
13、st ListData getreturn listData; public static ArrayList GetListData() &
14、#160; return listData; 上面包含了一個靜態(tài)類成員,listData,一個靜態(tài)構(gòu)造函數(shù)static AppDatas(),用來初始化listData的數(shù)據(jù)。還有一個靜態(tài)屬性ListData和一個靜態(tài)Get
15、ListData()方法,他們實現(xiàn)了同樣的功能就是返回listData。由于前面兩篇文章已經(jīng)講了很多,這里不細說了,下面是完整的代碼:Form1.cs文件using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;namespace ZZ public class Form1 : System.Windows.Forms.Form &
16、#160; private System.Windows.Forms.Button buttonEdit; private System.Windows.Forms.ListBox listBoxFrm1; private System.ComponentModel.Container components = null;
17、 public Form1() InitializeComponent(); this.lis
18、tBoxFrm1.DataSource = AppDatas.ListData; protected override void Dispose( bool disposing )
19、0; if( disposing ) if(components != null)
20、 components.Dispose(); base.Dispose( disposing ); STA
21、Thread static void Main() Application.Run(new Form1();
22、60; private void InitializeComponent() this.buttonEdit = new System.Windows.Forms.Button();
23、0; this.listBoxFrm1 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); this.buttonEdit.Location = new System.Drawing.
24、Point(128, 108); this.buttonEdit.Name = "buttonEdit" this.buttonEdit.TabIndex = 1;
25、0; this.buttonEdit.Text = "修改" this.buttonEdit.Click += new System.EventHandler(this.buttonEdit_Click); this.l
26、istBoxFrm1.ItemHeight = 12; this.listBoxFrm1.Location = new System.Drawing.Point(12, 8); this.listBoxFrm1.Name = "listBoxFrm1"
27、160; this.listBoxFrm1.Size = new System.Drawing.Size(108, 124); this.listBoxFrm1.TabIndex = 2;
28、160; this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(208, 141); this.Controls.Add
29、(this.listBoxFrm1); this.Controls.Add(this.buttonEdit); this.Name = "Form1"
30、; this.Text = "Form1" this.ResumeLayout(false); private void buttonEdit_Click(object sender, Syst
31、em.EventArgs e) Form2 formChild = new Form2(); formChild.ShowDialog(); &
32、#160; this.listBoxFrm1.DataSource = null; this.listBoxFrm1.DataSource = AppDatas.ListData; Form
33、2.cs文件using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;namespace ZZ public class Form2 : System.Windows.Forms.Form private System.Windows.Forms.Button
34、buttonOK; private System.ComponentModel.Container components = null; private System.Windows.Forms.ListBox listBoxFrm2; private System.Windows.Forms.Button b
35、uttonAdd; private System.Windows.Forms.Button buttonDel; private System.Windows.Forms.TextBox textBoxAdd; public Form2()
36、 InitializeComponent(); foreach(object o in AppDatas.ListData)
37、60; this.listBoxFrm2.Items.Add(o); protected override void Dispose( bool disposing )
38、0; if( disposing ) if(components != null) &
39、#160; components.Dispose(); base.Dispose( disposing ); private void InitializeComponent()
40、 this.buttonOK = new System.Windows.Forms.Button(); this.listBoxFrm2 = new System.Windows.Forms.ListBox(); &
41、#160; this.buttonAdd = new System.Windows.Forms.Button(); this.buttonDel = new System.Windows.Forms.Button();
42、; this.textBoxAdd = new System.Windows.Forms.TextBox(); this.SuspendLayout(); this.buttonOK.Location = new System.
43、Drawing.Point(188, 108); this.buttonOK.Name = "buttonOK" this.buttonOK.TabIndex = 0;
44、160; this.buttonOK.Text = "確定" this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); this.listB
45、oxFrm2.ItemHeight = 12; this.listBoxFrm2.Location = new System.Drawing.Point(8, 8); this.listBoxFrm2.Name = "listBoxFrm2" &
46、#160; this.listBoxFrm2.Size = new System.Drawing.Size(168, 124); this.listBoxFrm2.TabIndex = 2; &
47、#160; this.buttonAdd.Location = new System.Drawing.Point(188, 44); this.buttonAdd.Name = "buttonAdd" this.buttonAdd.TabIndex = 3
48、; this.buttonAdd.Text = "增加" this.buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
49、; this.buttonDel.Location = new System.Drawing.Point(188, 76); this.buttonDel.Name = "buttonDel"
50、160; this.buttonDel.TabIndex = 4; this.buttonDel.Text = "刪除" this.buttonDel.Click += new System.EventHandler(this.buttonDel_Click);
51、60; this.textBoxAdd.Location = new System.Drawing.Point(188, 12); this.textBoxAdd.Name = "textBoxAdd"
52、60; this.textBoxAdd.Size = new System.Drawing.Size(76, 21); this.textBoxAdd.TabIndex = 5; this.textBoxAdd.Te
53、xt = "" this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(272, 141);
54、; this.Controls.Add(this.textBoxAdd); this.Controls.Add(this.buttonDel); this.Contro
55、ls.Add(this.buttonAdd); this.Controls.Add(this.listBoxFrm2); this.Controls.Add(this.buttonOK);
56、160; this.Name = "Form2" this.Text = "Form2" this.ResumeLayout(false);
57、 private void buttonOK_Click(object sender, System.EventArgs e) this.Close();
58、; private void buttonAdd_Click(object sender, System.EventArgs e) if(this.textBoxAdd.Text.Trim().Length>
59、;0) AppDatas.ListData.Add(this.textBoxAdd.Text.Trim();
60、; this.listBoxFrm2.Items.Add(this.textBoxAdd.Text.Trim(); else
61、60; MessageBox.Show("請輸入添加的內(nèi)容!"); private
62、void buttonDel_Click(object sender, System.EventArgs e) int index = this.listBoxFrm2.SelectedIndex;
63、160; if(index!=-1) AppDatas.ListData.RemoveAt(index);
64、 this.listBoxFrm2.Items.RemoveAt(index); else
65、160; MessageBox.Show("請選擇刪除項!"); 總結(jié),我認為使用靜態(tài)類比較多的地方就是把應用程序的配置文件裝載到一個靜態(tài)類里面,讓所有的窗體和其他實例都可以通過靜態(tài)屬性以及靜態(tài)方法使用這些數(shù)據(jù),比如三層結(jié)構(gòu)或
66、多層結(jié)構(gòu)都可以訪問它,而不是在多個實例間傳來傳去。在這里我們討論的是Windows窗體,其實在兩個不同的實例間交互數(shù)據(jù),都可以采用三篇文章中的方案實現(xiàn),除非是這個類特有的屬性或著方法?,F(xiàn)在都講完了,雖然不是什么高深的東西,但是希望能對一些初學者有所幫助,同時也歡迎各位朋友進行技術(shù)交流,共同提高。 分析上面幾種方法:1 采用了委托的方法,可以實現(xiàn)。:很好的實現(xiàn)了數(shù)據(jù)處理與數(shù)據(jù)顯示的分離,即FORM2(主)顯示與FORM1數(shù)據(jù)處理,(不需要將FORM2的顯示放在FORM1中)與VC的回調(diào)的應用有延續(xù)性。并且確保了FORM1中要修改的屬性的私有性。 2
67、160; 方法2、3都是傳遞主窗口的引用,比較簡單易用??梢詫崿F(xiàn)FORM2(主)與FORM1所有數(shù)據(jù)的傳遞(不過需要將要FORM1傳遞和要修改的數(shù)據(jù)設(shè)為PUBLIC),而這樣會存在安全問題。 委托方法可以很好地實現(xiàn)數(shù)據(jù)的保護 總結(jié)C#中窗體間傳遞數(shù)據(jù)的幾種方法 (由別人的方法整理) 在編寫C#windows應用程序的時候我們經(jīng)常會遇到這種問題,怎么樣在兩個窗體間傳遞數(shù)據(jù)呢?以下是我整理的網(wǎng)上的各種方法,在遇到一個實際問題:在form1中打開一個form2窗口作為錄入界面,將錄入的值經(jīng)轉(zhuǎn)換后在form1中顯示。 采用了委托的方法,可以實現(xiàn)。(與VC的回
68、調(diào)的應用相似)1可以通過委托的方法來解決問題:通過form1做一個錄入界面,將里邊通過文本框錄入的數(shù)值復值給 form2中的listview各列,用3個textbox1.text舉例吧,分別對應listview的3個列??梢赃@么做,如果兩個窗體是在同一個命名空間下定義一個代理,注意這個代理是全局的:(即同一命名空間下,與Form1,F(xiàn)orm2平級的)public delegate void MyInvoke(string Item1,string Item2,string Item3); /在窗體From2中有這么一個回調(diào)函數(shù),用于在ListView里添加一個新項的:private
69、void UpdateListView(string Item1,string Item2,string Item3) ListView1.Items.Add(Item1); ListView1.ItemsListView1.Items.Count - 1.SubItems.Add(Item2); ListView1.ItemsListView1.Items.Count - 1.SubItems.Add(Item3); /比如說點擊Form2的一個按鈕彈出Form1進行錄入,在
70、點擊按鈕的事件下:/把委托傳過去Form1 frmEdit=new Form1(new MyInvoke(UpdateListView);frmEdit.ShowDialog(this); /在Form1里定義一個屬性private MyInvoke mi=null; 在構(gòu)造函數(shù)中接收這個委托:public Form1(MyInvoke myInvoke) this.mi=myInvoke; /錄入數(shù)據(jù)后,點擊OK按鈕,在點擊事件下:/回調(diào)this.mi(this.TextBox1.Text,this.TextBox3.Text,this.
71、TextBox3.Text);this.Close();/關(guān)閉Form1補充:如果我要是想再把form2的值給form1,F(xiàn)orm1 frmEdit=new Form1(new MyInvoke(UpdateListView),string para1,string para2.);frmEdit.ShowDialog(this);然后將Form1的構(gòu)造函數(shù)改成可以接收幾個參數(shù)的就行了。 2假如主框架為Form1,打開的搜索對話框是Form2.直接在Form2類中申明一個Form1實例:Form1 f1=new Form1();然后就可以通過f1來調(diào)用Form1中的域和函數(shù)了。其實不
72、是這樣的,你申明的新的Form1實例不是原來的那個Form1對象了,這樣操作的是新的Form1中的域和函數(shù),和最先打開的Form1是沒有關(guān)系的。我們要做的是把當前的Form1實例傳遞給Form2,如果是這樣的話,問題就很好解決了。 方法1:首先,我們在Form2中定義: private Form1 mF_Form 我們更改Form2的構(gòu)造函數(shù)為有參數(shù)的 public Form2 ( Form1 myForm ) / / Windows 窗體設(shè)計器支持所必需的 / InitializeComponent ( ) ; this.mF_Form = myForm ;
73、; /這樣在Form1中申明Form2的時候就把Form1的實例傳遞過來了 / / TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼 / 在Form1中,我在 要用到Form2的地方申明如下: Form2 f2=new Form2(this);/這里的this指的就是Form1當前的實例,也就是把當前Form1的實例通過Form2的構(gòu)造函數(shù)傳遞給Form2類(其實在網(wǎng)上看到過比較蠢的方式,就是在構(gòu)造函數(shù)里面?zhèn)鬟f要傳遞的信息如:字符串或是數(shù)字等,這樣做很有局限性,不能傳遞其他的,所有我們可以直接傳遞實例,來完成傳遞更多的信息。) 這樣在Form2中使
74、用myForm 就可以對原來的Form1窗口進行操作了。但是你要把要操作的Form1中的域和函數(shù)定義成public形式的(這樣可能不安全),此時的myForm就是真正的最開始打開的Form1了,你可以用這個實例來進行兩個窗體的通訊了。 ()3其實C#中提供了窗體間進行通訊的現(xiàn)成的屬性,呵呵,我們能想到的,微軟也想到了,他們創(chuàng)造的語言其實確實可以說是人性化了。 在Form1類中申明Form2時用如下代碼: Form2 f2=new Form2();/類Form2中的構(gòu)造函數(shù)不改,還是無參的 f2.owner=this;/這里的this指的是類Form1當前的實例。 /也可以使用函數(shù)的方法,給當前
75、實例添加一個附屬窗口 代碼:this.AddOwnedForm(f2); 在Form2類的定義中寫如下代碼: Form1 f1=this.owner; 這樣f1對應的就是原來的Form1的實例了,也就可以用這個進行通訊了。但是還是要把不同類之間訪問的域和函數(shù)定義成public,哎,安全確實是一個問題! 4使用靜態(tài)類 這個也是我們經(jīng)常要用到的一種數(shù)據(jù)交互方法。下面是定義的一個類:using System;using System.Collections;namespace ZZ
76、; public class AppDatas private static ArrayList listData; static AppDatas()
77、 listData = new ArrayList(); listData.Add("DotNet"); listData.Add("C#");
78、0; listData.Add("A"); listData.Add("WebService"); listData.Add("XML&quo
79、t;); public static ArrayList ListData getreturn listData; &
80、#160; public static ArrayList GetListData() return listData;
81、0; 上面包含了一個靜態(tài)類成員,listData,一個靜態(tài)構(gòu)造函數(shù)static AppDatas(),用來初始化listData的數(shù)據(jù)。還有一個靜態(tài)屬性ListData和一個靜態(tài)GetListData()方法,他們實現(xiàn)了同樣的功能就是返回listData。由于前面兩篇文章已經(jīng)講了很多,這里不細說了,下面是完整的代碼:Form1.cs文件using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.
82、Windows.Forms;namespace ZZ public class Form1 : System.Windows.Forms.Form private System.Windows.Forms.Button buttonEdit; private System.Windows.Forms.List
83、Box listBoxFrm1; private System.ComponentModel.Container components = null; public Form1()
84、; InitializeComponent(); this.listBoxFrm1.DataSource = AppDatas.ListData;
85、60; protected override void Dispose( bool disposing ) if( disposing )
86、160; if(components != null) components.Dispose(); base
87、.Dispose( disposing ); STAThread static void Main()
88、 Application.Run(new Form1(); private void InitializeComponent()
89、 this.buttonEdit = new System.Windows.Forms.Button(); this.listBoxFrm1 = new System.Windows.Forms.ListBox(); this.SuspendLayout();
90、160; this.buttonEdit.Location = new System.Drawing.Point(128, 108); this.buttonEdit.Name = "buttonEdit" &
91、#160; this.buttonEdit.TabIndex = 1; this.buttonEdit.Text = "修改" this.buttonEdit.Click += new Syste
92、m.EventHandler(this.buttonEdit_Click); this.listBoxFrm1.ItemHeight = 12; this.listBoxFrm1.Location = new System.Drawing.Point(12, 8);
93、; this.listBoxFrm1.Name = "listBoxFrm1" this.listBoxFrm1.Size = new System.Drawing.Size(108, 124);
94、 this.listBoxFrm1.TabIndex = 2; this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new Sys
95、tem.Drawing.Size(208, 141); this.Controls.Add(this.listBoxFrm1); this.Controls.Add(this.buttonEdit);
96、160; this.Name = "Form1" this.Text = "Form1" this.ResumeLayout(false);
97、 private void buttonEdit_Click(object sender, System.EventArgs e) Form2 formChild = new Form2();
98、0; formChild.ShowDialog(); this.listBoxFrm1.DataSource = null; this.list
99、BoxFrm1.DataSource = AppDatas.ListData; Form2.cs文件using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;namespace ZZ public class Form2 : System.Windo
100、ws.Forms.Form private System.Windows.Forms.Button buttonOK; private System.ComponentModel.Container components = null; private Syst
101、em.Windows.Forms.ListBox listBoxFrm2; private System.Windows.Forms.Button buttonAdd; private System.Windows.Forms.Button buttonDel; private System.Windows.F
102、orms.TextBox textBoxAdd; public Form2() InitializeComponent();
103、60; foreach(object o in AppDatas.ListData) this.listBoxFrm2.Items.Add(o); protected
104、 override void Dispose( bool disposing ) if( disposing ) if(compo
105、nents != null) components.Dispose(); base.Dispose( disposing );
106、60; private void InitializeComponent() this.buttonOK = new System.Windows.Forms.Button();
107、; this.listBoxFrm2 = new System.Windows.Forms.ListBox(); this.buttonAdd = new System.Windows.Forms.Button();
108、 this.buttonDel = new System.Windows.Forms.Button(); this.textBoxAdd = new System.Windows.Forms.TextBox(); this.SuspendL
109、ayout(); this.buttonOK.Location = new System.Drawing.Point(188, 108); this.buttonOK.Name = "buttonOK"
110、60; this.buttonOK.TabIndex = 0; this.buttonOK.Text = "確定" this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); this.listBoxFrm2.ItemHeight = 12;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度砂石料電商平臺運營及供應鏈管理合同3篇
- 2025年度高校退休教授返聘項目合作協(xié)議3篇
- 事業(yè)單位北京地區(qū)聘用協(xié)議示范文本版A版
- 二零二五年服務(wù)器性能優(yōu)化與升級服務(wù)合同3篇
- 二零二五年度知識產(chǎn)權(quán)國際注冊與維權(quán)合同正規(guī)范本3篇
- 二零二五年度還建小區(qū)房屋買賣及配套設(shè)施合同3篇
- 2025年度鋼筋套筒法律咨詢服務(wù)合同
- 二零二五年智能機器人研發(fā)與銷售合同3篇
- 項目融資ppp模式課程設(shè)計
- 二零二五年度智能綠色節(jié)能廠房建設(shè)項目承包合同3篇
- 2024年山東省機場管理集團威海國際機場有限公司招聘筆試參考題庫含答案解析
- 國際貨物運輸委托代理合同(中英文對照)全套
- 銀行反恐應急預案及方案
- 關(guān)于推某某同志擔任教育系統(tǒng)實職領(lǐng)導職務(wù)的報告(職務(wù)晉升)
- 2023消防安全知識培訓
- 騰訊營銷師認證考試題庫(附答案)
- 鄰近鐵路營業(yè)線施工安全監(jiān)測技術(shù)規(guī)程 (TB 10314-2021)
- Exchange配置與規(guī)劃方案專項方案V
- 資本市場與財務(wù)管理
- 三年級上冊脫式計算練習200題及答案
- 新生兒腭裂護理查房課件
評論
0/150
提交評論