请教panel设计状态下可拖放控件的设计技巧,UP有分

supercdz 2004-01-12 12:46:08
我现需要设计一个类似于panel的控件,可在上面自由拖放控件
非继承于panel,请问实现思路,并给出相关源码

也可以说是重新写一个panel

谢谢
...全文
65 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
feic 2004-06-07
  • 打赏
  • 举报
回复
学习
acewang 2004-01-12
  • 打赏
  • 举报
回复
参考几个codeproject的自定义控件:
http://www.codeproject.com/aspnet/panelbar.asp
http://www.codeproject.com/aspnet/ecoolwebpanelbar.asp
cubasic 2004-01-12
  • 打赏
  • 举报
回复
可能是要用JS
孟子E章 2004-01-12
  • 打赏
  • 举报
回复
你可以参考js的一些填方格的游戏
孟子E章 2004-01-12
  • 打赏
  • 举报
回复
用js脚本最好
supercdz 2004-01-12
  • 打赏
  • 举报
回复
自己UP一下!
xtmyname 2004-01-12
  • 打赏
  • 举报
回复
Up
ga3ga3 2004-01-12
  • 打赏
  • 举报
回复
学习

==Ga3Ga3==
==我是猫猫==
Email:xuxy@trmips.ac.cn
MSN:matataxu@hotmail.com
QQ:47169132
http://kyokyo66.vicp.net/williamxu M388手机短信存取软件
Lostinet 2004-01-12
  • 打赏
  • 举报
回复
只要你的ControlDesigner继承System.Web.UI.Design.ReadWriteControlDesigner就是。
当然你的Control要标记为ParseChildren(false),PersistChildren(true)

不过这样,控件除了Border,其他的东西都不能显示。
中间就只显示内部的内容。

dotnet1.2 对这个设计有更好的支持,
能够在显示自身的HTML的同时在内部提供一个子控件编辑框。
keenyliu 2004-01-12
  • 打赏
  • 举报
回复
grid layout panel == div,两者是一个东东,都继承自System.Web.UI.HtmlControls.HtmlGenericControl,或许你继承这个比较好?
keenyliu 2004-01-12
  • 打赏
  • 举报
回复
对,就是用div最方便!一切panel可以实现的,都可以用div实现!
keenyliu 2004-01-12
  • 打赏
  • 举报
回复
您可以看看.net中html控件grid layout panel,可以作为服务器控件运行,而且拖放很方便。
笨马克 2004-01-12
  • 打赏
  • 举报
回复
我也用panel里面放过东西
很不方便
后来用的div
lvzm 2004-01-12
  • 打赏
  • 举报
回复
up
kinglht 2004-01-12
  • 打赏
  • 举报
回复
学习!
shang515 2004-01-12
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<div onmousedown="style.cursor='move';startMove(this)" onmouseup="style.cursor='auto'" style="border:1px solid #AAAAAA;background-color:#EEEEEE;width:300;height:200;position;text-align:center;">可以使用鼠标拖动</div>
<script language=javascript>
function startMove(objDiv)
{
document.attachEvent("onmousemove",moveDiv);
document.attachEvent("onmouseup",endMove);
document.attachEvent("onselectstart",selectNo);
document["moveDiv"] = objDiv;
document["startX"] = event.x;
document["startY"] = event.y;
document["oldX"] = objDiv.getBoundingClientRect().left;
document["oldY"] = objDiv.getBoundingClientRect().top;
}
function moveDiv()
{
//try{
var obj = document["moveDiv"];
if(obj)
{
var l = document["oldX"];//obj.getBoundingClientRect().left;//obj.style.left// = 100//(event.x-document["startX"]);
var t = document["oldY"];//obj.getBoundingClientRect().top;//obj.style.top// = 100//(event.y-document["startY"]);
obj.style.position = "absolute";
obj.style.left = l + (event.x-document["startX"]);
obj.style.top = t + (event.y-document["startY"]);
}
//}catch(e){endMove();}
}
function endMove()
{
document.detachEvent("onmousemove",moveDiv);
document.detachEvent("onmouseup",endMove);
document.detachEvent("onselectstart",selectNo);
document["moveDiv"] = null;
document["startX"] = null;
document["startY"] = null;
}
function selectNo()
{ return false; }
</script>
</BODY>
</HTML>
supercdz 2004-01-12
  • 打赏
  • 举报
回复
谢谢各位的提示,我正在研究中....

也希望更多的朋友能给予帮助
tqz2003 2004-01-12
  • 打赏
  • 举报
回复
up
savagewang1978 2004-01-12
  • 打赏
  • 举报
回复
可能是要用JS
zsww 2004-01-12
  • 打赏
  • 举报
回复
不错!学习!
加载更多回复(2)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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