C#怎么让控件上下左右移动?

根据键盘上下左右键。求注释代码~... 根据键盘上下左右键。求注释代码~ 展开
 我来答
百度网友96ffcf7
推荐于2016-08-13 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部

直接使用代码即可做到。

[DllImportAttribute("user32.dll")]    
private extern static bool ReleaseCapture();       
[DllImportAttribute("user32.dll")]      
private extern static int SendMessage(IntPtr handle, int m, int p, int h);    
private void panelEx4_MouseDown(object sender, MouseEventArgs e)      
  {       
 DevComponents.DotNetBar.PanelEx p=(DevComponents.DotNetBar.PanelEx)sender;    
         if (e.Button == MouseButtons.Left)    
         {                this.Cursor = Cursors.SizeAll;    
             ReleaseCapture();       
          SendMessage(p.Handle, 0xA1, 0x2, 0);                                        this.Cursor = Cursors.Default;  
           }
        }
匿名用户
2013-08-04
展开全部
webform 里面可以 在aspx里面就不行了 用鼠标点在你脱出的控件上 然后点击方向键就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-04
展开全部
可以跟据鼠标的当前位置来确定鼠标下的DataGrid是哪一行哪一列,然后由行和列来确定当前行和列的坐标来确定出你的菜单显示的位置,参考如下代码:

Point m_CurPoint = 当前鼠标位置;

if (this.HitTest(m_CurPoint).Type != System.Windows.Forms.DataGrid.HitTestType.Cell)
{
Console.WriteLine(this.HitTest(m_CurPoint).Row);//所在的行号
Console.WriteLine(this.HitTest(m_CurPoint).Column);//所在的列号
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-04
展开全部
Winform下楼上几个
Asp.Net 下:
<style>
html,body {height:100%;overflow:hidden;}
#actor {background:#C30;position:absolute;left:0;top:0;width:20px;height:20px;}
</style>
<script>
keyMove={
bind:function(UI){
var D=document,I=this;
this.keys=[];
this.len=10;
this.UI=document.getElementById(UI);
D.onkeydown=function (event){var e = window.event || event;I.addKey(e.keyCode);};
D.onkeyup=function (event){var e = window.event || event;I.delKey(e.keyCode);};
this.move();
},
addKey:function(key){for(var i=0;i<this.keys.length;i++){if(key==this.keys[i]){return;}}this.keys.push(key);},
delKey:function(key){for(var i=0;i<this.keys.length;i++){if(key==this.keys[i]){this.keys.splice(i,1);break;}}},
css:function(k,v){with(this.UI)style[k]=(parseInt(style[k])||0)+v+"px";},
move:function(){
var $=this;
setInterval(function(){
var data={37:["left",-1],39:["left",1],38:["top",-1],40:["top",1]};
for(var i=0;i<$.keys.length;i++){if(/^[34][0789]$/.test($.keys[i])){var val=data[$.keys[i]];$.css(val[0],$.len*val<br><br>[1])}}
},10);
}
}

onload=function(){keyMove.bind("actor");}
</script>

<body>
<div id="actor"></div>
</body>
测试通过,兼容FF,IE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-04
展开全部
楼主您好能把问题描述的在详细一点吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式