父窗体传值给子窗体的问题
说明:主窗体Form1上一个Button1,子窗体childForm上有一个ComboBox. TechWeb-技术社区,f1`,}0V-D4E
我想Click Button1的时候根据注册表获得本机上的串口个数(串口个数是不一定的),然后传递给子窗体的ComboBox.Items 8i'x0d-P*N/d
TechWeb-技术社区8r8o8v"Z1V;` {
写了如下代码:
!K%c9K*B(^,}2G)QTechWeb-技术社区主窗体:
3N6~0v S:I.t&O w private string str; tech.techweb.com.cn!z.S.B*Y&l'^3o7~0^'R#l
public string Str 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛/`,o7y+j"o4Q
{ TechWeb-技术社区4O$g'L7T.a4N9H4I9W
get { return str; }
"}-H/b;~#ETechWeb-技术社区 set { this.str = value; } tech.techweb.com.cn/^9G:l'{(B/_
} 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 G y(M#K9^'G s
$Z%T7o)a,F9],c private void button1_Click(object sender, EventArgs e) *f8h0c2K3d$z
{
Z&m0u9l"R*Y1I&Z;`TechWeb-技术社区 RegistryKey hklm = Registry.LocalMachine; 7d%i7e#V:L4T0})b
RegistryKey comKey = hklm.OpenSubKey(@"HARDWARE\DEVICEMAP\SERIALCOMM");
N-V!P$e)u/}6[2c!})P1~程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 string[] comArray = comKey.GetValueNames(); !W7i9q'L(v7C8G"p a
for (int i = 0; i < comArray.Length; i++)
'P6?2u&u&I'[tech.techweb.com.cn {
p-G!W.m)D&X2a(j'`:@3{+`TechWeb-技术社区 this.str = comKey.GetValue(comArray).ToString(); //这里不知道该怎么写.我这种写发只能传最后一个字符串给子窗体. tech.techweb.com.cn+S2Q7X3e%|)]*p*|/R8_
}
.|#P5o2f;n(U>echWeb-技术社区 childForm cf = new childForm();
.H'p*v1i%S)S&jtech.techweb.com.cn cf.ShowDialog(this); TechWeb-技术社区'w,W,?,y!S'V*v&C(z-g
} TechWeb-技术社区0b:W9q*? o&Z$@
子窗体:
)v-o2J6U)A(^TechWeb-技术社区
,}8`9K*r;i;m.}:i //子窗体的Form_Load事件
3m"h(E)b%['M程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 private void childForm_Load(object sender, EventArgs e)
7a)y;z#m-I {3N,v {
1t'K.c-l8N$q Form1 fm = (Form1)this.Owner; ;~0~5o0{-K
this.comboBox1.Items.Add(fm.Str); /A:Q%l+P&f!D'G
} "_#l9_0@3p"[$Y+w
tech.techweb.com.cn5O"]0P6x)O @'r0\;n1x
这里的运行结果只有一个Item:COM2,实际上有2个(COM1和COM2).
3S0B u:m5f"q不知道该怎么办.
|