Din*_*esh 48 .net c# .net-2.0 winforms
我有使用ShowDialog方法打开的表单.在这种形式我有一个名为更多的按钮.如果我们点击"更多",它应该打开另一个表单,它应该关闭当前表单.
在更多按钮的Click事件处理程序我写了以下代码
MoreActions objUI = new MoreActions ();
objUI.ShowDialog();
this.Close();
Run Code Online (Sandbox Code Playgroud)
但正在发生的是,它没有关闭第一种形式.所以,我修改了这段代码
MoreActions objUI = new MoreActions ();
objUI.Show();
this.Close();
Run Code Online (Sandbox Code Playgroud)
在这里,第二种形式显示,并在几秒钟内关闭表格.
任何人都可以帮我解决问题.我需要做的是,如果我们点击更多按钮,它应该打开另一个表单并关闭第一个表单.
任何形式的帮助对我都很有帮助.
Joh*_*ais 52
在我看来,主要表格应该负责打开两个子表格.这是一些伪解释我会做什么的:
// MainForm
private ChildForm childForm;
private MoreForm moreForm;
ButtonThatOpenTheFirstChildForm_Click()
{
childForm = CreateTheChildForm();
childForm.MoreClick += More_Click;
childForm.Show();
}
More_Click()
{
childForm.Close();
moreForm = new MoreForm();
moreForm.Show();
}
Run Code Online (Sandbox Code Playgroud)
您只需要在第一个孩子中创建一个简单的事件MoreClick.这种方法的主要好处是您可以根据需要进行复制,并且可以非常轻松地为某种基本工作流建模.
yon*_*236 38
如果我找对你,你是这样想的吗?

进入这个?

在您的Form1中,在您的按钮中添加此事件:
// button event in your Form1
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog(); // Shows Form2
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的Form2中,在您的按钮中添加此事件:
// button event in your Form2
private void button1_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3(); // Instantiate a Form3 object.
f3.Show(); // Show Form3 and
this.Close(); // closes the Form2 instance.
}
Run Code Online (Sandbox Code Playgroud)
小智 13
好吧所以我用过这个:
public partial class Form1 : Form
{
private void Button_Click(object sender, EventArgs e)
{
Form2 myForm = new Form2();
this.Hide();
myForm.ShowDialog();
this.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但第一种形式只是隐藏,它仍然可以生成事件.关闭第一个表单需要"this.Close()"但是如果你仍然希望你的表单运行(而不是像启动器那样)你必须用它替换它
this.Show();
Run Code Online (Sandbox Code Playgroud)
祝你好运!
我会使用一个值,当更多按钮被推闭时,第一个对话框被关闭,然后让原始表单测试值,然后显示那里的对话框.
对于前
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private bool DrawText = false;
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
if (f2.ShowMoreActions)
{
Form3 f3 = new Form3();
f3.ShowDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public bool ShowMoreActions = false;
private void button1_Click(object sender, EventArgs e)
{
ShowMoreActions = true;
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
387599 次 |
| 最近记录: |