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事件?嘗試了...