gpt4 book ai didi

C# 尝试访问面板父级的位置

转载 作者:行者123 更新时间:2023-11-30 22:37:49 24 4
gpt4 key购买 nike

我有一个带有选项卡控件的主窗体。通过从解决方案中的其他表单添加面板来填充选项卡。这些面板之一有一些代码会弹出一个选项窗口。我希望该窗口与主窗体的右上角对齐。为此,我需要主窗体的位置和大小。但是,我似乎无法访问任何属性来告诉其中一个面板该主窗体的位置。

我已经尝试过 this.Parentthis.ParentFormthis.GetContainerControl() 之类的方法。它们都返回 null

有什么想法吗?

附录

//Code for the main form:
namespace WinAlignTest {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
tabControl1.TabPages[0].Controls.Add(new SomeApplication().panel1);
}
}
}



//Code that shows the option window
namespace WinAlignTest {
public partial class SomeApplication : Form {
private ApplicationOptions Options;
public SomeApplication() {
InitializeComponent();
Options = new ApplicationOptions();
}

private void button1_Click(object sender, EventArgs e) {
Options.Show();

//This will always move the location to {0,0}
Options.Location = new Point(base.Location.X,base.Location.Y);
}
}
}

最佳答案

我很困惑,您似乎要将属于 SomeApplication 的面板添加到 Form1。我建议您实际上将 SomeApplication 设为 UserControl 而不是表单:

//Code for the main form:
namespace WinAlignTest {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
tabControl1.TabPages[0].Controls.Add(new SomeApplication());
}
}
}

//Code that shows the option window
namespace WinAlignTest {
public partial class SomeApplication : UserControl {
private ApplicationOptions Options;
public SomeApplication() {
InitializeComponent();
Options = new ApplicationOptions();
}

private void button1_Click(object sender, EventArgs e) {
Options.Show();

// You might need to use PointToScreen here
Options.Location = this.Location;
}
}
}

关于C# 尝试访问面板父级的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com