【发布时间】:2014-01-25 17:52:54
【问题描述】:
请您帮我创建更多具有相同外观的按钮。我在一个单独的类中有按钮的图形结构。我在 windows 窗体中创建按钮的功能。
第 1 步) 图形按钮结构类:
class GraphicClassStructure : GraphicPosition
{
public Button resetTree = new Button();
public void CreateClassButtons()
{
// Reset tree
resetTree.BackColor = Color.Transparent;
resetTree.BackgroundImage = BuildResource.reset;
resetTree.BackgroundImageLayout = ImageLayout.Stretch;
resetTree.FlatAppearance.BorderSize = 0;
resetTree.FlatAppearance.MouseDownBackColor = Color.Transparent;
resetTree.FlatAppearance.MouseOverBackColor = Color.Transparent;
resetTree.FlatStyle = FlatStyle.Flat;
resetTree.Name = "resetTree";
resetTree.Size = Size[0][5];
resetTree.UseVisualStyleBackColor = false;
}
}
控制按钮的Win表单功能。
private void classMenu_Click(object sender, EventArgs e)
{
classStructure.ClassAllButtonsVisible();
classStructure.CreateClassButtons();
this.Controls.Add(classStructure.classBackround);
for (int i = 0; i < 3; i++)
{
switch (i)
{
case 0:
classStructure.resetTree.Location = classStructure.Location[0][2];
break;
case 1:
classStructure.resetTree.Location = classStructure.Location[0][3];
break;
case 2:
classStructure.resetTree.Location = classStructure.Location[0][4];
break;
}
classStructure.resetTree.Click += new EventHandler(resetTreeOneEvent_Click);
classStructure.resetTree.MouseEnter += new EventHandler(resetTree_MouseEnter);
classStructure.resetTree.MouseLeave += new EventHandler(resetTree_MouseLeave);
classStructure.resetTree.Tag = i;
this.Controls.Add(classStructure.resetTree);
}
}
当前的问题是按钮的创建是在“GraphicStructure”类中,但在类中它只创建一个按钮。虽然我可以将功能嵌入到windows窗体中,但我想分别拥有图形按钮和功能。你能帮帮我吗?。
控制:
private void resetTreeOneEvent_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
switch ((int)button.Tag)
{
case 0:
// First Button Clicked
break;
case 1:
// Second Button Clicked
break;
case 2:
// Third Button Clicked
break;
}
}
}
或者第二个想法。我创建了一个不执行任何操作但具有图形结构的按钮。然后创建三个额外的按钮,它们已经在做某事,但同样没有图形,只需要让这些按钮做一些从什么都不做的图形按钮克隆的事情。
我尝试使用这个,但我仍然只看到一个按钮:
private void classMenu_Click(object sender, EventArgs e)
{
classStructure.ClassAllButtonsVisible();
classStructure.CreateClassButtons();
this.Controls.Add(classStructure.classBackround);
for (int i = 0; i < 3; i++)
{
Button button = new Button();
button = classStructure.resetTree;
switch (i)
{
case 0:
button.Location = classStructure.Location[0][2];
break;
case 1:
button.Location = classStructure.Location[0][3];
break;
case 2:
button.Location = classStructure.Location[0][4];
break;
}
button.Click += new EventHandler(resetTreeOneEvent_Click);
button.MouseEnter += new EventHandler(resetTree_MouseEnter);
button.MouseLeave += new EventHandler(resetTree_MouseLeave);
button.Tag = i;
this.Controls.Add(button);
}
}
第二个想法工作(我看到三个按钮)如果我评论这个:
button = classStructure.resetTree;
但是如果我注释了这部分代码,那么所有三个按钮都再次没有图形结构。
【问题讨论】:
标签: c# winforms class button location