兩個窗體傳值c,C 普通窗體間傳值的方法?

2022-12-27 16:01:33 字數 5963 閱讀 3035

1樓:匿名使用者

如果窗體a是b new出來的或則b是a new出來的 可以用以下方法:

在窗體a中:

public delegate void weituo(); //宣告乙個委託

public event weituo shuaxin;//宣告乙個事件

並在你那個按鈕單擊事件中:

shuaxin();

便可以了!

在b窗體中:

a forma = new a();

forma.shuaxin += new a.weituo(fangfa);

forma.show();

這裡面fangfa就是你用來修改label的方法(**函式)

void fangfa()

注意:forma.shuaxin += new a.

weituo(fangfa);這句在輸入完+=之後按2下tab便可以自動生成方法(也就是上面的fangfa())名字是系統自動命名可以改就是了!

如果是單獨的2個窗體就要用到api了相對**多了很多我就不寫了。

需要用到sendmessage 方 和 重寫wndproc方法。

然後要獲取控制代碼 傳送乙個資訊給 b窗體 然後在b窗體中的wndproc中獲取訊息 並作出處理 也就是重新整理!

**沒有測試,無法確保沒錯。有問題可以發資訊過來!

2樓:匿名使用者

這跟傳值有什麼關係啊。你要是傳值就建乙個公共類,

public class class1

把值傳給zhi然後傳給你的label的text就可以了。

3樓:匿名使用者

窗體一:

public partial class demo1 : form//顯示另一窗體

private void button1_click(object sender, eventargs e)

//改變另一窗體lbl的值

private void button2_click(object sender, eventargs e)

}窗體2:記住窗體2上的lbl必須是public的。

lable的public設定方法:modifiers設定成public

public partial class demo2 : form}

4樓:最後的仙人

b裡面加乙個函式

public void setlabel(string s1,string s2)

a裡面加乙個全域性變數formb f;

通過建構函式將b的this傳過去

然後在buttonclick裡面呼叫setlabel(s1,s2);

5樓:匿名使用者

在窗體b類檔案中定義兩個全域性變數,public修飾。如下:

public string s1; public string s2;

在窗體a的button按鈕click事件中**如下:

bform frmb = new bform(); //例項化b窗體

//以下兩句為傳值,注意資料型別

frmb.s1 = "你要賦的值1";

frmb.s2 = "你要賦的值2";

frmb.show(); //開啟b窗體在b窗體的load事件中將前面定義的兩個全域性變數賦值給labelthis.lbl1.text = s1;

this.lbl2.text = s2;

這樣就實現了兩個窗體間傳值了。如果要傳的值多,可以再b裡面定義乙個public修飾的方法,通過方法傳值也可以。

6樓:紫炳廖婭芳

方法有多種,介紹常用2種:

假設有窗體a,a上面有很多label控制項,a上面還有乙個button按鈕,點選按鈕彈出窗體b

窗體b上的某個button按鈕點選時查詢sql方法1:在點選a上面的按鈕彈出窗體b時不是要寫formb

b=new

formb();

嘛,這個時候給窗體b,也就是

formb增加乙個帶引數的構造方法,引數即是forma

型別,然後彈出時寫

formb

b=new

formb(this);

即可。在b類中增加乙個字段

forma

a;然後在上面增加的帶引數構造方法裡面賦值a=forma;

方法2:同方法1,只不過構造方法裡面的引數是字串,直接把label的值傳遞過去

c# winfrom 兩個窗體傳值

7樓:

把你點選的正行資料都傳遞到b視窗中,然後分別給b視窗中的控制項賦值。至於怎麼把修改後的資料返回給a,方法1:你可以在b中把修改過後的行資料宣告為靜態變數,在a中直接取就行了。

方法2:在a中定義行資料位靜態變數,在b中給他賦值。方法3:

在b中定義乙個事件,修改完之後觸發此事件,在a中註冊此事件,在a的事件中獲取到事件所傳遞過來的值

8樓:我不愛註冊二

獲取選中行的id號,然後b視窗在根據id號查詢一下賦值,然後a視窗在重新繫結。

9樓:陳韓泰

datagridview_rowselected(object sender,eventargs e)

這樣好像是可以,但是修改datagridview通常是修改它繫結的資料來源的資料。比如你的datagridview是繫結到dataset,中的某張表上的。那麼你就的修改這個dataset中表的值,然後呼叫dataset.

update()將資料更新回資料庫

10樓:asp林詩涵

將a視窗的資料封裝到物件中,在跳轉到b窗體的時候傳入,在b窗體就可以用了

student stu = null;

public form2(student stu)a窗體跳轉到b時

student stu = new student();

stu.name = "zhangsan";//此處的值為datagridview中的資料

stu.age = 18;

(new form2(stu));

至於修改後的資料重新整理,可以在a中放入乙個timer控制項,方法很多種......

11樓:hope_李

form1中寫個公開方法

public void 修改行(int 行號,其他引數)private void 點選行要執行的方法()form2

public form1 f;//公開屬性public string a;//要傳的值點確定時的**

f.修改行( 行號,其他引數)

c# 普通窗體間傳值的方法?

12樓:

方法一、利用屬性傳值

background:①點選 button按鈕,將主窗體form1中textbox1 中的值傳到 form2中的textbox2中。② 點選form2中的按鈕,將form2中textbox的值傳給主窗體的文字框。

1、 在form2中定義乙個字段,封裝成屬性:

private string flag;

////// 接收傳過來的值

///public string flag

set}2、 在form1 button按鈕事件中,例項化乙個form2 窗體物件,並將textbox1中的值賦給 form2中的flag,這樣在窗體form2的登入事件中就可以獲取到窗體form1傳過來的值。

窗體:form1中的**:

private void button1_click(object sender, eventargs e)

}窗體:form2的load()事件

private void form2_load(object sender, eventargs e)

3、 子窗體傳值給父窗體(回傳) 點選form2中的button按鈕將form2中textbox的值傳給父窗體form1.

窗體:form2中的**

private void button1_click(object sender, eventargs e)

方法二、利用子窗體中的建構函式 (實現了父窗體給子窗體的傳值,但是子窗體的值回傳暫未實現)

1、 過載窗體form2中的 建構函式

string str = string.empty;//接收傳過來的值

public form2(string textvalue)

2、 主窗體呼叫子窗體時候傳引數:主窗體form1的button事件

form2 f2 = new form2(textbox1.text);

f2.showdialog();

13樓:匿名使用者

窗體間傳值的情況有很多種吧,不知道你說的那一種?通常是情況form1中呼叫form2,可以寫成form2 m_frm = new form2();m_frm.showdialog(); y =m_frm.

x(這裡是傳出引數);其中x為form2中變數,y為form1中變數。也可以對form2進行帶引數的初始化如form2 m_frm = new form2(x)(這裡是傳入引數)。

14樓:以暢

在**的最上方定義乙個靜態的全域性變數

15樓:匿名使用者

public partial class form1 : formprivate void button1_click(object sender, eventargs e)

}public partial class form2 : formpublic static void fulldata(string text)}

c#兩個窗體之間textbox如何傳值

16樓:

form1 中 全域性變數form2 f2=new form2();

按鈕事件:

f2.show();

f2.getvalue=textbox1.text;

form2中 屬性

public string getvalue}

17樓:

form1 下的button下的的

form2 f2 = new form2();

f2.getid(textbox1 .text );

this.hide();

f2.show();

form2 的**:

public form2()

public void getid(string id)

在c#中,如何實現在兩個窗體中相互傳值

18樓:匿名使用者

原創********************這個簡單。。。

直接告訴你答案也可以,告訴你精彩的細節更容易理解。

你定義的窗體,比如mainform,也就是乙個類,是繼承於form的乙個類

現在你定義了2個窗體類,乙個是form1,乙個是form2。

在類中傳遞值的方法有幾種:

方法1.公共變數

class form1

呼叫:form1 form1 = new form1(); //例項類

form1.omq504868 = 10;

方法2.公共屬性

class form1

呼叫:同上

}方法3:引數傳遞

class form1

}呼叫:

form1 form1 = new form1(10);

方法4:函式傳遞

到這裡,你可能理解還是有點難度。

那麼我舉個例。form2裡有列表框,其實是個**檔案管理器,點選列表框中的**檔名,form1就會顯示。

class form1

}呼叫:

class form2

}方法5:靜態變數。。。等等。

c兩個時間大小比較,c c 兩個時間大小比較

兩個時間大小的比較方法描述如下 首先解析字串,獲取年月日時分秒各項數值。然後按照先比較年月日,再比較時分秒的辦法進行比較。如果大於則返回1,如果小於返回0,如果等於返回2。這裡面需要利用到兩個知識點 比較年月日,可以先將年月日集成為乙個整數,然後比較整數即可比較出年月日的大小 sscanf可以將字串...

photoshop怎樣同時顯示兩個影象視窗

ps的介面,有兩種排列方式 一是浮動視窗,如下圖 二是選項卡方式,如下圖 實現這兩種介面的方法是 編輯 首選項 介面如下圖 很簡單,開啟影象後右擊 的標題 選擇 複製,現在是兩張一摸一樣的影象,然後選擇視窗 排列 平鋪 新建乙個空白視窗,再把複製的內容拖到新視窗中。點左下角的顯示模式就可以選擇你要顯...

C中有兩個窗體Form1和Form2,現在我想在F

我以前為了弄清委託和事件,自己也寫過兩個窗體間傳資訊的例子,把你的郵箱告訴下吧,我發給你看下 還有你說的 在form2中乙個按鈕的單擊事件中呼叫form1的form1 load 事件 就不是就是在from2中點按鈕時,from1顯示出來呢?汗乙個,委託和事件雖然強大,可也不至於這樣吧.解決問題的方法...