C怎麼通過窗體的建構函式的引數把主窗體的例項傳給子窗體

2021-05-14 10:06:48 字數 6288 閱讀 3848

1樓:匿名使用者

傳遞引數啊 new新視窗時候傳參啊

第一個窗體

u = new user();

form_main fm = new form_main(this, u);

第二個窗體

public form_main(form_login fl,user u)這樣啊

2樓:百百

用object吧...

form1(主窗體):

cform cf = new cform(this); //將主窗體傳給子窗體

cform(子窗體):

form f;

public cform(form __f__)

3樓:匿名使用者

web窗體只能用js方式取父窗體

c#怎樣將主窗體的資料傳給子窗體

4樓:匿名使用者

有很多種方法:

1、form2加兩個public的成員變數string【】 hostarry,和socket client

這樣構造form2的時候給其賦值為form1的值就可以了;

2、form2修改一下,加個建構函式,然後將上述引數作為建構函式也可以(實質和上面的類似)

其它的應該還有,上面的最簡單

5樓:手機使用者

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace 傳值練習

//1、利用建構函式由父窗體向子窗體傳值

private void button1_click(object sender, eventargs e)

//利用方法由子窗體向父窗體傳值

public void chuanzhi(string data)}}

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace 傳值練習

//1、利用建構函式由父窗體向子窗體傳值

public form2(string name)//2、利用方法由子窗體向父窗體傳值

private void button1_click(object sender, eventargs e)}}

6樓:匿名使用者

定義一個公共類, 把公共form1 裡面的值給公共類 公共類 要公開 在把 值給from2 就可以了

在c#中怎麼樣才能把父窗體中的值傳給子窗體?

7樓:匿名使用者

可以在子窗體建立一個賦值的方法,父窗體建立子窗體後呼叫這個方法。

8樓:匿名使用者

在子視窗的類中的建構函式裡定義引數就行了,例項化子視窗的時候,把引數傳遞過去就行了哈。

9樓:匿名使用者

假設父窗體為form1 frmparent = new form1();

假如想把父窗體的一個string str="abc";傳 給子窗體。

在父窗體中定義一個屬性

public string getdata}子窗體為form2 frmchild=new form2();

在子窗體中呼叫的方法為

form1 frmparent = new form1();

string str = frmparent.getdata;

c# 主視窗呼叫子視窗的值傳遞?

10樓:文庫寶藏

(1)傳引數的時候,你可以過載子視窗的建構函式,給它加上引數,比如public form(string str),呼叫的時候你就可以將父視窗的值傳給它了。

(2)你說的應該是動態建立視窗,每個視窗都會有自己的id,不會重複的。

(3)你動態建立的視窗,裡面的控制元件沒有新增事件,這樣你就需要自己手動新增事件,例如

dongjin所寫。

11樓:匿名使用者

窗體間傳值有幾個辦法,出了採用子窗體公開變數的辦法外還有如下幾個辦法:

1.公開子窗體的控制元件~既將構造檔案中控制元件宣告是的修飾符改為public,效果和公開變數一樣

2.採用cookie,這個就簡單了,吧值存到cookie中,可以在任一視窗取出來用,並進行修改

3.採用資源,或文字輸出。這個就是將資料存到固定檔案中,和cookie類似。

4.配置檔案,同3.但有個特性就是可以用這個進行控制元件與資料繫結。

5.資料庫,不管成不承認,這個用的最多~原理同2,3,4。只不過把資料存到資料庫。一般用在使用資料庫的時候

6.關於其他辦法請參見下面的文章:

言歸正傳:

1.你的這種想法不是不能實現,只不過用c#會比較難,需要自己用**構造窗體函式~不如c++來的容易一些,建議放棄

2.剛測試了下在不指定name的情況下,x代表的是最後一次譚處端視窗,這種情況下,你有兩種辦法解決~

辦法1.

int i=0;

在 form x=new form();

後面給x窗體一個動態的name值:x.name=“childfrom”+i.tostring();

i++;

這樣就是每個窗體都有個name值了。就可以通過name來呼叫各個窗體了

辦法2:

使用泛型:listf2s=new list();

form x=new form();

f2s.add(x);

然後通過f2s來操作子窗體

12樓:星星浪漫色

其實所謂的窗體和類是一樣的.

給他加個帶引數的建構函式不久行了.

f1 是主窗體.f2是子窗體.

f1中f2 f=new f2("**路徑")

f.show();

而f2的預設建構函式是沒有引數的.請收到新增

13樓:匿名使用者

子窗體你在開啟(類的構造)的時候,是可以構造多個的,這就好比你構造了多個類是一樣的!至於x代表哪個窗體,你可以在構造的時候標識一下,通過一些額外的手段,比如新增一個成員變數,表示窗體的id,或者通過窗體的名稱(不能一樣噢)

c#怎麼將窗體之間的物件傳遞到另一個窗體

14樓:匿名使用者

改窗體的建構函式啊,作為一個引數傳進去,或者增加其他的public函式,道理一樣的。總之就是作為引數傳進去。

15樓:反對風格

在另外一個窗體(如form2)中設定一個內部變數。

然後把form2例項化,把要傳遞的物件設定到form2的變數中,然後把form2 show()出來.

16樓:匿名使用者

看看這個,或許對你有幫助

17樓:匿名使用者

最簡單的方法就是在另外一個窗體裡邊定義公用變數,在例項化窗體的時候一起賦值就行了

18樓:匿名使用者

使用靜態變數是最直接的辦法。如果需要更加複雜的業務邏輯就必須使用委託

19樓:

還有一種方法是用委託

20樓:賽亞星5號

一般通過建構函式傳遞方便點

21樓:匿名使用者

可以定義靜態物件:

在form1中定義

public static string strt = "aa" ;

在form2中可以直接讀取:form1.strt

怎樣在c#中實現父窗體向子窗體傳值和子窗體向父窗體傳值

22樓:笨蛋是你我

子窗體按鈕事件

childwindow child = new childwindow() ;//第1步,給子窗體傳值了

child.showdialog();//第2步,呼叫showdialog

if (child.dialogresult==true)//第3步,然後對dialogresult進行判斷

父窗體按鈕事件

textbox2.text= "我要給子窗體傳值";

this.dialogresult = true;//第3步,首先會話結束

23樓:匿名使用者

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace 傳值練習

//1、利用建構函式由父窗體向子窗體傳值

private void button1_click(object sender, eventargs e)

//利用方法由子窗體向父窗體傳值

public void chuanzhi(string data)}}

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace 傳值練習

//1、利用建構函式由父窗體向子窗體傳值

public form2(string name)//2、利用方法由子窗體向父窗體傳值

private void button1_click(object sender, eventargs e)}}

24樓:匿名使用者

form1的**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace myurlrecondpublic form1(string message)private void button1_click(object sender, eventargs e)}}

form2的**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace myurlrecondpublic form2(string message)private void button1_click(object sender, eventargs e)}}

c提示不包含採用1個引數的建構函式

開啟form2的 檔案。你會發現form2建構函式只有乙個 public form2 所有窗體都缺省會有這麼乙個建構函式。如果你想傳入什麼引數,建議修改這個建構函式的引數列表。c 不包含採用0個引數的建構函式 我認為的 一 集合例項化不應該在建構函式內部 二 proadmin類繼承自user,你看看...

C建構函式的過載問題,C建構函式和析構函式可以過載嗎

因為對於後者來說,當執行my class c1語句時,c1可以呼叫my class建立物件,也可以呼叫my class float x 3.5,float y 8.5 建立物件.但是這會產生兩個不同的c1物件,極易發生歧義。所以系統不知道要呼叫那個建構函式產生物件,也不會允許程式這麼做。c 建構函式...

C中過載賦值建構函式的問題,C複製建構函式和號過載問題

賦值運bai算符和複製建構函式都 du是用已存zhi在的b物件來建立另dao乙個物件a。不同之回處在於答 c 複製建構函式和 號過載問題 表述基本上沒有問bai題。從功能上來du說,建構函式是用於建立zhi物件的dao,operator其實是可以看成普通內的成員函式,只不容 過是以符號的形式代替文字...