为什么这个窗口拉屎不擦屁股,关闭后留下了一团黑黑在桌面上??

Microghost 2008-06-30 08:15:22
写了一个小工具条。
运行起来如图一所示,
当按Esc关闭之后,就在桌面上留下一团漆黑。请问高手这是什么原因,应该怎样修改呢?


//以下是涉及到窗口关闭的代码

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 27)
{
this.Close();
}
}

private void buttonGo_Click(object sender, EventArgs e)
{
if (this.textBox.Text == "q" || this.textBox.Text == "Q" || this.textBox.Text == "exit")
{
this.Close();
return;
}
this.targetUrl = getTargetUrl();
this.keywords = this.textBox.Text;
string kwTransUrl = HttpUtility.UrlEncode(this.keywords,Encoding.Default);
System.Diagnostics.Process.Start("firefox.exe", " -new-window " +this.targetUrl + kwTransUrl);
}
图片一
[img="http://hiphotos.baidu.com/%C3%F7%DC%BE%D3%EF%D1%D4/pic/item/e89f85d37365f521960a1675.jpg"]运行时[/img]
图片二
[img="http://hiphotos.baidu.com/%C3%F7%DC%BE%D3%EF%D1%D4/pic/item/93457cda35b18dceb7fd4875.jpg"]关闭后[/img]
...全文
670 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
落叶的葬礼 2008-07-02
  • 打赏
  • 举报
回复
this.Dispose();
this.Close();
两个方法的含义不一样的.
virusswb 2008-07-02
  • 打赏
  • 举报
回复
看来是内存管理的问题,c#带来了垃圾回收的便利,也带来了屁股不干净的问题,建议自己及时释放资源的好
535cheng110 2008-07-01
  • 打赏
  • 举报
回复
看不到
likegod 2008-07-01
  • 打赏
  • 举报
回复
内存管理的问题。。
bluedodo 2008-07-01
  • 打赏
  • 举报
回复
关注一下,是咋回事?
万婷 2008-07-01
  • 打赏
  • 举报
回复
内存大是不是有图片或歌之类的东西..?

不过一般C#好象是占不少内存 压缩之后会变的好小好小的..
Microghost 2008-07-01
  • 打赏
  • 举报
回复
谢谢楼上各位,我已解决了问题,用下面这个函数关闭即可,但是还不明白为什么。

关闭前先对窗体上所有控件使用Dispose()函数。
最后的this.Dispose();和this.Close();貌似有一个就可以。

private void Bye()
{
this.m_textBox.Dispose();
this.m_radioZhidao.Dispose();
this.m_radioPtuLib.Dispose();
this.m_radioLanguage.Dispose();
this.m_radioImage.Dispose();
this.m_radioGougou.Dispose();
this.m_radioGoogle.Dispose();
this.m_radioFile.Dispose();
this.m_radioBaike.Dispose();
this.m_radioBaidu.Dispose();
this.m_buttonGo.Dispose();
this.Dispose();
this.Close();
}

另外,我写的是个很小的程序,为什么内存却很大,有15M左右。请问是不是太大了点呢。
我是按照向导的默认动作建的程序。自己添加的代码也没多少,逻辑上说不该是我的问题。不知道怎么优化。请高手指点。
jeffreyljc 2008-07-01
  • 打赏
  • 举报
回复
尝试下 application.Exit() 来关闭程序.
hebeijg 2008-07-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jeffreyljc 的回复:]
尝试下 application.Exit() 来关闭程序.
[/Quote]

close好像关闭的只是窗体,没有清理内存。
socg 2008-07-01
  • 打赏
  • 举报
回复
问题好像不在这里,窗口应该还没有关闭把,看看进程里面有没有
Microghost 2008-06-30
  • 打赏
  • 举报
回复
55555555555555555555555555帮忙啊
Microghost 2008-06-30
  • 打赏
  • 举报
回复
没有人理我吗。5555555
Microghost 2008-06-30
  • 打赏
  • 举报
回复

maddemon 2008-06-30
  • 打赏
  • 举报
回复
图不大 看不到, 关注下
Microghost 2008-06-30
  • 打赏
  • 举报
回复
晕图怎么这么大
Microghost 2008-06-30
  • 打赏
  • 举报
回复
图一运行时

图二关闭后

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧