【发布时间】:2016-11-05 02:41:15
【问题描述】:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OcppDummyClient
{
public partial class Form1 : Form
{
public string[] messages = new string[]
{
"Authorize",
"BootNoficiation"
};
public Panel A;
public Panel B;
public Form1()
{
InitializeComponent();
InitializeForm();
A = new Panel()
{
Width = this.flowLayoutPanel1.Width,
Height = this.flowLayoutPanel1.Height,
BackColor = Color.Black
};
A.Controls.Add(new Button()
{
Text = "Button"
});
B = new Panel()
{
Width = this.flowLayoutPanel1.Width,
Height = this.flowLayoutPanel1.Height,
BackColor = Color.Blue
};
B.Controls.Add(new Button()
{
Text = "Button2"
});
this.flowLayoutPanel1.Controls.Add(A);
this.flowLayoutPanel1.Controls.Add(B);
}
public void InitializeForm()
{
this.comboBox1.Items.AddRange(messages);
}
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
string SelectedValue = this.comboBox1.Text.ToString();
switch(SelectedValue)
{
case "Authorize":
{
A.Visible = true;
B.Visible = false;
break;
}
case "BootNoficiation":
{
A.Visible = false;
B.Visible = true;
break;
}
default:
{
break;
}
}
}
}
}
这是我的全部代码,我想知道为什么当我使用事件处理程序(comboBox1_SelectedValueChanged)更改组合框时会发生内存泄漏。我认为没有发生内存泄漏,因为我已经创建了面板并且只是更改了面板属性(可见)。
【问题讨论】:
-
为什么会出现内存泄漏?
-
我刚刚在windows中打开了任务管理,做了一些改变的combobox事件,增加了我的程序内存!
-
这可能会提供一些线索stackoverflow.com/questions/2820807/…
-
您只是在谈论增加的内存使用量,而不是内存泄漏。内存泄漏是当内存没有正确释放时,它应该导致程序使用它永远无法释放的内存。您所描述的只是使用更多内存的东西,这可能有多种原因。您所描述的内容对我来说听起来不是问题 - 如果您认为是问题,则必须更详细地描述,以便我们了解您正在寻求解决方案的确切问题。