我的父表单中有一个工具条菜单,我将我的子表单作为用户控件加载到面板中。当用户点击我父表单中的菜单条时,我需要在我的子表单中触发一个事件。
以下是父控件中的事件:
//Character Name
private void randomNameToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (_SQL_Settings.TabControl == "Character Builder")
{
}
else
{
MessageBox.Show("You must be in the Character Builder Screen
To Generate A Random Character Name, Please Try Again.");
}
}
catch(Exception ex)
{
}
}
//Character
private void randToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (_SQL_Settings.TabControl == "Character Builder")
{
}
else
{
MessageBox.Show("You must be in the Character Builder Screen
To Generate A Random Character, Please Try Again.");
}
}
catch (Exception ex)
{
}
}
这是我在父表单中构建我的子表单的位置:
case "Character Builder":
{
Character_Builder CC = new Character_Builder();
panCC.Controls.Clear();
CC.Dock = DockStyle.Fill;
panCC.Controls.Add(CC);
CC.Main_Menu += Main_Menu;
break;
}
以下是我想在用户点击父窗体菜单条项
时触发的功能private void Generate_Raondom_Character()
{
try
{
}
catch(Exception ex)
{
}
}
private void Generate_Random_Character_Name()
{
try
{
}
catch (Exception ex)
{
}
}
我已经在我的孩子表格中添加了这两个事件,但我认为他们需要以我的父母形式。
活动:
public event EventHandler Random_Character;
public event EventHandler Random_Name;
有谁知道我需要做些什么才能让它发挥作用?样品会很棒。我知道如何在Vb中做到这一点而不是c#。
答案 0 :(得分:1)
我有一个解决方案。这不是我想做的,但似乎有效。我正在循环浏览我孩子论坛中的控件,直到找到我想要的控件并编辑控件文本。我想使用事件,但我想这也有效。如果有人有更好的方法,请分享:
if (_SQL_Settings.TabControl == "Character Builder")
{
DataTable dt = new DataTable();
dt = _SQL.Random_Character_Name();
foreach (Control Parentctrl in panCC.Controls)
{
if (Parentctrl.Name == "Character_Builder")
{
foreach (Control Childctrl in Parentctrl.Controls)
{
if (Childctrl.Name == "cbFirstName")
{
Childctrl.Text = dt.Rows[0]["First_Name"].ToString();
}
if (Childctrl.Name == "cbLastName")
{
Childctrl.Text = dt.Rows[0]["Last_Name"].ToString();
}
if (Childctrl.Name == "cbCharacterTitle")
{
Childctrl.Text = dt.Rows[0]["Character_Title"].ToString();
}
}
}
}