請教 C# 控制項陣列問題
VB2010的控制項陣列可以這樣處理,如下圖:可是, 我把它"轉化" 到C#卻行不通, 如下圖:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 3; i++)
{
groupBox1.Controls("label" + (i.ToString())).Text = i.ToString();
}
}
請問,這個錯誤訊息何解?
thanks.
看來groupBox1.Controls在VB Net 是一個方法,在C#上是個屬性,我的作法
private void button1_Click(object sender, EventArgs e)
{
foreach (Control c in this.groupBox1.Controls)
{
if (c is Label)
{
c.Text = c.Name.Substring(5) ;
}
}
rich888 發表於 14-11-30 19:13 static/image/common/back.gif
看來groupBox1.Controls在VB Net 是一個方法,在C#上是個屬性,我的作法
private void button1_Click(object ...
成功了, 謝謝 rich888大!
對,groupBox1.Controls在VB Net 是一個方法,在C#上是個屬性.
{:4_113:}太強了!
不客氣,有幫到您就好.{:4_209:} 本帖最後由 googleandy 於 14-11-30 20:35 編輯
rich888 發表於 14-11-30 19:13 static/image/common/back.gif
看來groupBox1.Controls在VB Net 是一個方法,在C#上是個屬性,我的作法
private void button1_Click(object ...
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//1.建立Label物件
Label[] lblCtl = new Label;
for (int i = 1; i <= 3; i++)
{
lblCtl = new Label();
}
for (int i = 1; i <= 3; i++)//!= lblStrkPrc.Length
{
//2.加入控制項
this.groupBox1.Controls.Add(lblCtl);
lblCtl.Text = "Label" ;
lblCtl.Top = Convert.ToInt32(20 + (lblCtl.Height * i * 1.3));
lblCtl.Height = 28;
lblCtl.Width = 115;
lblCtl.Left = 13;
lblCtl.BackColor = Color.Lime;
}
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
請教 rich888大,
程式開始就已動態加入 控制項(藍字)
請問, button1_Click要填入什麼程式才可達到前面所述的效果?
thanks.
我之所以有上述問題是因為 ---
控制項若是 "動態"建立, 那麼,還在撰寫階段時候,
C#找不到那些控制項(執行才會產生).
請問如何克服這問題? thanks.
本帖最後由 paf 於 14-11-30 20:58 編輯
googleandy 發表於 14-11-30 20:48 static/image/common/back.gif
我之所以有上述問題是因為 ---
控制項若是 "動態"建立, 那麼,還在撰寫階段時候,
C#找不到那些控制項(執 ...
將 Label[] lblCtl 宣告在全域變數
看要private Label[] lblCtl 或publicLabel[] lblCtl 皆可
private Label[] lblCtl;
public Form1()
{
InitializeComponent();
lblCtl = new Label;
.......
這樣子在button_click event中就可以針對lblCtl 做assign
paf 發表於 14-11-30 20:54 static/image/common/back.gif
將 Label[] lblCtl 宣告在全域變數
看要private Label[] lblCtl 或publicLabel[] lblCtl 皆可
太強了, 成功了.
原來要宣告在全域變數區.
感謝 paf大.{:4_113:}
Coco-In 的C#高手真不少.
不好意思 剛好人不再 ,有人回答的就好.{:4_209:} Hi
補充一下
VB.NET的索引子用小括號取
若要用C#請改用中括號
頁:
[1]