C# 根据用户控件c更改窗口大小#
我有一个主窗体,里面有一个面板。 为此,我创建了几个用户控件,根据不同按钮的请求,我将它们放在面板中 我的问题是:我需要根据面板中的UC更改MainForm上的窗口大小。我该怎么做 我想在MainForm中创建一个公共方法,然后在不同的UC-on-load中调用它,你觉得怎么样?给我你最好的解决方案。谢谢 编辑:如果这有任何帮助,这是在我的MainUC代码中引入其他UC以替换面板中的MainUCC# 根据用户控件c更改窗口大小#,c#,user-controls,size,C#,User Controls,Size,我有一个主窗体,里面有一个面板。 为此,我创建了几个用户控件,根据不同按钮的请求,我将它们放在面板中 我的问题是:我需要根据面板中的UC更改MainForm上的窗口大小。我该怎么做 我想在MainForm中创建一个公共方法,然后在不同的UC-on-load中调用它,你觉得怎么样?给我你最好的解决方案。谢谢 编辑:如果这有任何帮助,这是在我的MainUC代码中引入其他UC以替换面板中的MainUC private void UC1Button_Click(object sender, EventA
private void UC1Button_Click(object sender, EventArgs e)
{
Panel MainPanel = MainForm.MainPanel;
if (!MainPanel.Controls.Contains(UC1.Instance))
{
MainPanel.Controls.Add(UC1.Instance);
UC1.Instance.Dock = DockStyle.Fill;
UC1.Instance.BringToFront();
}
else
{
UC1.Instance.BringToFront();
}
在每个
UserControl
中,您可以创建一个事件,该事件在内容发生更改时触发。例如,您可以在单击按钮时创建事件
public partial class MyControl : UserControl
{
public event OnButtonClicked ButtonClicked;
public MyControl()
{
InitializeComponent();
}
private void MyButton_Click(object sender, EventArgs e)
{
if(ButtonClicked != null)
{
ButtonClicked((Button)sender);
}
}
}
public delegate void OnButtonClicked(Button button);
然后在main表单中
可以订阅事件,并在适当的时候更改面板内容和窗口大小
public partial class MainForm : Form
{
MyControl myControl;
void Subscribe()
{
myControl.ButtonClicked += myControl_ButtonClicked;
}
void myControl_ButtonClicked(Button button)
{
// Change panel content
// Resize window
}
}
你说它不起作用是什么意思?这只是一个指导准则。是的,我理解。我把你的部分代码改成了我应该做的。它不起作用。你想让我发布我所有的代码?看看这是否有道理。我知道它很乱,只是原始的复制粘贴。我没有费心删除你不需要的东西。很抱歉。请将登记的更改应用于您的代码:没有问题。如果答案符合你的需要,请考虑一下。