我不想看到新表格。 我需要他最大化和与form1相同的大小但不要看到它。 因此,当我使用鼠标移动/拖动form1时,我需要使用form1移动/拖动它后面的新表单。
这是form1中的按钮点击事件,显示新表单:
private void BeginOperationBut_Click(object sender, EventArgs e)
{
if (this.imageList.Count == 0)
{
wbss = new WebBrowserScreenshots();
wbss.Show();
}
}
wbss是新形式。
我尝试在新的表单设计器中将属性Locked设置为True,但它没有改变任何内容。
我想做的是两件事:
现在当我点击按钮时,新表单将在form1前显示。
答案 0 :(得分:1)
有许多事情需要加以考虑,以确保其按预期工作。以下是您可以使用的一小段代码:
public partial class FollowForm : Form {
readonly Form _master;
private FollowForm() {
InitializeComponent();
}
public FollowForm(Form master) {
if (master == null)
throw new ArgumentNullException("master");
_master = master;
_master.LocationChanged += (s, e) => Location = _master.Location;
_master.SizeChanged += (s, e) => Size = _master.Size;
ShowInTaskbar = false;
}
protected override void OnShown(EventArgs e) {
base.OnShown(e);
Location = _master.Location;
Size = _master.Size;
_master.Activate();
}
protected override void OnActivated(EventArgs e) {
_master.Activate();
}
}
我尝试了ShowWithoutActivation
属性,但结果并不像我预期的那样。
主要方面是跟踪主表单的大小或位置的变化,并相应地更新跟随者表单的大小和位置。此外,在显示时将跟随者表单发送到后面并重新激活主表单。试试看。这是来自.NET4.0项目VS2013。
public partial class MasterForm : Form {
FollowForm _follower;
public MasterForm() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
_follower = new FollowForm(this);
_follower.Show();
}
}
要获得更好的无激活功能,请查看: