關於c如何獲取父窗體控制元件,關於c 中子視窗呼叫父視窗中控制元件內容的問題

時間 2022-03-13 06:15:14

1樓:匿名使用者

form2中的按鈕事件中使用this.parent as panel可以獲取到父視窗panel1

2樓:叱吒風雲

這個可以通過建構函式傳參獲得。

給你舉個例子:

父窗體**如下:

namespace 獲取父類物件

public partial class form1 : formpublic form1()

initializecomponent();

private void button1_click(object sender, eventargs e)

form2 f2 = new form2(this);

f2.show();

子窗體**如下:

namespace 獲取父類物件

public partial class form2 : formpublic form1 rec = null;

//public form2()

//    initializecomponent();

public form2(form1 f1)initializecomponent();

rec = f1;

private void button1_click(object sender, eventargs e)

rec.close();

c# 子視窗控制父窗體的方法。和使用父視窗的控制元件,

3樓:

很簡單的,首先你需要在父窗體中定義一個委託然後在子窗體中使用這個委託

使用委託相對要麻煩一點,你想簡單的話,也可以直接將父窗體傳遞到子窗體去,像這樣改下就行了

form _form = null;

//將基類定義為子窗體的構造器引數

public form2(form from)//呼叫父窗體的方法就變成這樣

_form.showform();

當然父窗體中建立子窗體時,就應該這樣了

//建立子窗體,並將父窗體傳遞到子窗體去

form2 f = new form2(this);

f.show();

忘了一點,那個在子窗體呼叫的方法不能再是private的了,一定要改成public的,這樣才能在子窗體中使用。

4樓:小豬愛上羊

把父窗體作為引數傳遞給子窗體。父窗體可以定義一些public控制元件,把自身控制元件賦值給它,供子窗體呼叫。

關於c#中子視窗呼叫父視窗中控制元件內容的問題

5樓:匿名使用者

首先你在form2裡面建立一個公開form1的物件,然後在form2裡面寫一個窗體載入事件,下面是**:

public form1 form1;//這是建立的物件

private void form2_load(object sender, eventargs e)//窗體載入事件

form2的設定搞定,

然後把form1的textbox1公開一下,在屬性裡面設定,屬性叫modifiers-->設定為public, 然後有一個按鈕開啟form2,事件為:

private void button1_click(object sender, eventargs e)

6樓:匿名使用者

這種做法一般是通過屬性來實現的,將窗體物件引用傳遞給查詢視窗,然後操作之

7樓:請叫我小備

建構函式吧。子視窗設定全域性變數將父視窗傳入的值賦給它。也可以直接父視窗的控制元件modifiers屬性設為public直接呼叫的。(前提傳過去的是父視窗物件)

8樓:匿名使用者

有個簡單的方法:(1)先把你要modifiers的值設定為public;(2)再在子窗體中宣告public static form1 form1 = null;(父窗體為form1),這樣就可以通過form1.form1.

label1.text =""(以控制元件label1為例) 來為你想改變的控制元件的屬性值了;

c#如何獲得主窗體控制元件引用?

9樓:匿名使用者

其中有兩種屬性方法:

1、為該控制元件構建一個控制元件屬性

public textbox mytextbox}2、只構造自己想用的屬性,比如text屬性public string mytextstring//如果只想獲取text,set就不用寫了get}

10樓:

首先要引用的成員必須為public修飾。

在需要引用的類或窗體宣告

public 主窗體名 變數(frm);

你是要點選主窗體進入這個要呼叫的窗體吧?

如果是:要呼叫的窗體名 物件=new 要呼叫的窗體();

物件.frm=this;

就可以呼叫所有主窗體為public修飾的.

11樓:

在a中增加一資料成員:public control ctrlparent;

在fmtest中,把引用賦給它: a.ctrlparnt = this;

接下來就隨你怎麼用了。

12樓:

將主窗體的引用作為引數

如userform(form frm)

c# winform 子窗體更新父窗體,呼叫父窗體的函式

13樓:匿名使用者

定義個委託,父窗體在例項化子窗體的時候,通過委託把方法傳給子窗體。子窗體在需要的時候呼叫這個委託即可

14樓:匿名使用者

可以在父視窗開啟子視窗的時候把自己傳過去

比如父窗體是form1,子窗體form2

子窗體中

from fafrom;

public form2(from f)

父窗體private void button1_click(object sender, eventargs e)

之後就可以通過對faform操作,從而控制父窗體如果要使用父窗體的控制元件

(textbox)faform.controls.find("textbox1", false)[0]

就是取父窗體中,id為 textbox1的textbox控制元件

c#中子窗體怎麼呼叫父窗體的控制元件

15樓:創作者

第一我的建議是:不使用子窗體、父窗體,這個機制事實上不好用,無論是從比例控制還是物件之間相互關係都做的比較差勁,簡單舉例,鑲嵌在窗體上的進度條要使用非同步,兩個物件之間就抓瞎了,我的建議是直接用自定義控制元件做子窗體,把子窗體做成控制元件,讓panel去add他,切換就直接控制他的visible屬性,sizechange事件控制他的尺寸比例。

為什麼我們不直接加在窗體呢?因為窗體每次load要重繪背景為按鈕表面顏色,把子窗體加入panel他會閃爍的。

第二,你的主窗體要實現這樣的功能就要使用remoting機制,用子窗體去啟動主窗體的執行緒,用執行緒來控制他的控制元件。

.net在winform方面我認為的幾個敗筆:

雙緩衝只緩衝窗體根本對控制元件沒作用

重繪窗體時要先把窗體填充為按鈕顏色

半透明屬性不靈活,透明只針對父級,不好疊放自作聰明的資料庫控制元件,靈活性極差

窗體之間大量使用靜態變數傳遞引數,影響效率報表做的很差勁

c# winform 父視窗與子視窗控制元件操作

16樓:匿名使用者

建一個類,namesapce father class my_在裡面寫上靜態資料static string x;然後寫個公有成員 public string getx()然後在子視窗裡面using father 新建一個my_物件 my_ newmy();然後textbox1.text=newmy.getx()就是利用類的特性和靜態資料的有點!

17樓:

在program.cs裡面新增這個類。

class winzhi

在父窗體的showdialog()那個按鈕方法下寫這個。

botton_click()

在子窗體的from_load()下寫這個

from_load()

這樣就可以了!!!這個方法不是叫什麼值傳遞,只是對類的一種運用!

18樓:匿名使用者

在子窗體的建構函式裡面寫幾個引數,

然後用引數傳過去就行了

//接受值的窗體

public partial class form2 : formstring _str1;

string _str2;

string _str3;

public form2(string str1,string str2,string str3)

private void form2_load(object sender, eventargs e)

//呼叫的方法

private void button1_click(object sender, eventargs e)

19樓:匿名使用者

看裡面的第二條窗體間傳值!

20樓:匿名使用者

嗯,可以通過事件把值傳遞給父窗體,如果您知道事件怎麼用,就很容易實現了!

關於C中的timer控制元件,C 中,關於Timer控制元件的說法正確的是 選2項

會完成。但是需要注意 1.system.windows.forms.timer 是單執行緒的,它只在ui執行緒中執行,定時精度約55ms,當前的事件沒處理完成時,下一次事件不會觸發 過久地處理會導致介面假死。2.system.threading.timer 是多執行緒的,觸發的事件在threadpo...

如何在C中刪除控制元件,如何在C 中刪除一個控制元件

void ds control item else private void button1 click object sender,eventargs e 看checkbox的parent是誰 1 如果checkbox是放在panel 比如canvas,grid,dockpanel之類的 中的,呼...

C如何手動觸發控制元件的事件,C 如何手動觸發控制元件的事件?

先把父類裡兩個控制元件的修飾符改成public或protected 貌似預設不是 在子類裡 this.a.selectindexchanged this.f 子類裡還需要定義相應的方法 this.f ojbect sender,引數型別 e c 視窗程式的控制元件如何觸發容器的click事件?嘗試了...