如何在Paint事件中,判断有其他控件拖过。
我的意思是,如果是控件本身大小改变了,那么就重绘,如果只是被其他控件因为拖放而暂时挡住了,则不重绘。
我的意思是,如果是控件本身大小改变了,那么就重绘,如果只是被其他控件因为拖放而暂时挡住了,则不重绘。
解决方案 »
- 通信协议
- 几个新手问题~~~~
- ASP.NET如何将页面中的表单清空
- 关于AJAX的ModalPopupExtender里有3个按钮
- 谁能说明一下sql中按多个字段排序,它到底是怎么排的?
- C#如何删除远程FTP目录下的指定文件夹??????
- 请问为什么vb的函数val(&Hbcde)的值是-17186 而不是48350,同时请问C#中有什么函数可以实现这个功能
- 请问如何实现:上传文件夹的所有内容到服务器
- 用HTTP下载文件时,如何获取文件的大小?
- 关于dotnetfx.exe安装问题
- 求Visual Studio 2008 安裝軟件
- Gridview如何 绑定dropdownlist的Value和Items
sender.refresh()
private void MyPaint(object sender, PaintEventArgs e)
{
Control ctrl = sender as Control;
Rectangle rect = ctrl.ClientRectangle;
rect.Inflate(0, 0);
ctrl.SendToBack();
Graphics g = e.Graphics;
if (ctrl.Capture)
{
ControlPaint.DrawBorder(g, rect, Color.Red, ButtonBorderStyle.Solid);
}
else
if (ctrl.Cursor != Cursors.Arrow)
{
ControlPaint.DrawBorder(g, rect, Color.Red, ButtonBorderStyle.Dotted);
}
}但由于控件拖动到另一个控件表面,并覆盖他时,另一个控件会重绘,但我不想要这样的效果。
private void MyPaint(object sender, PaintEventArgs e)
{
Control ctrl = sender as Control;
Rectangle rect = ctrl.ClientRectangle;
rect.Inflate(0, 0);
Graphics g = e.Graphics;
ControlPaint.DrawBorder(g, rect, Color.Red, ButtonBorderStyle.Solid);
}
然后那个标签可以随意拖动,改变大小。