我在做菜單類,這讓我容易控制菜單
爲了便於理解看看下面的圖片
C#如何添加類的標籤來形成的控制
如果我想使這些菜單,我創建我的菜單類,並添加7類菜單,設置文本,設置顏色,設置位置...
一切都很好,但我有一個控件的問題。
當我在Form1.cs中創建菜單類時,我不知道如何將標籤添加到Form1的控件。
我認爲的方法是讓該類獲取表單的控件並在類中添加標籤。
那麼有什麼方法可以在它的子類中獲得父類的控件?
像
主類,例如
namespace Tetris
{
public partial class Form_Start : Form
{
public Form_Start()
{
InitializeComponent();
Menu menu = new Menu(10,postion_x,postion_y,str_arr);
}
}
}
菜單類的例子
class menu
{
Label[] lab;
List<string> str = new List<string>();
int num, start_x, start_y, x_interval, y_interval;
public create_menu(int value, int start_x, int start_y, int x_interval, int y_interval, List<string> str)
{
num = value;
lab = new Label[num];
start_x = this.start_x;
start_y = this.start_y;
x_interval = this.x_interval;
y_interval = this.y_interval;
str = this.str;
int count = 0;
foreach (Label label in lab)
{
label.Text = str[count];
label.Location = new System.Drawing.Point(start_x + x_interval * count, start_y + y_interval * count);
count++;
Parent.Controls.Add(label); // <- I want to know this code
}
}
}
如果你有更好的想法或知道其他的方式,請告訴我。謝謝
------------------------------------------ -------
通過將控件發送到類,我將標籤添加到表單。
create_menu menu = new create_menu(3, 20, 20, 0, 10, menu_str, this.Controls);
public create_menu(int index, int start_x_, int start_y_, int x_interval_, int y_interval_, List<string> str_, Control.ControlCollection ctrl)
{ ctrl.Add(label[i]); }
有沒有更好的點子?
如果我正確地得到了你 - 你有一個菜單控件,上面沒有幾個標籤來顯示菜單結構類型。當您將該菜單控件的一個實例添加到窗體'form1'中時,菜單控件上的所有標籤都將添加到窗體中。我有正確的解釋嗎?在這種情況下,菜單控件將成爲菜單標籤的父項,form1將作爲菜單控件的父項。那麼你在這裏遇到了什麼確切的問題? – RBT
@RBT是的,但我想知道班級如何控制它的父母 – AJH