c# – 如何允许用户在窗体上移动控件

c# – 如何允许用户在窗体上移动控件,第1张

概述我有一个winform,我想让用户移动一个控件. 该控件(现在)是一条垂直线:带边框且宽度为1的标签. 上下文不是很重要,但无论如何我都会给你.我有一些带有图形的背景,我希望用户能够在图形上方滑动指南.图形由NPlots库制作.它看起来像这样: http://www.ibme.de/pictures/xtm-window-graphic-ramp-signals.png 如果我可以找出用户如何点击 我有一个winform,我想让用户移动一个控件.

该控件(现在)是一条垂直线:带边框且宽度为1的标签.

上下文不是很重要,但无论如何我都会给你.我有一些带有图形的背景,我希望用户能够在图形上方滑动指南.图形由NPlots库制作.它看起来像这样:
http://www.ibme.de/pictures/xtm-window-graphic-ramp-signals.png

如果我可以找出用户如何点击并拖动屏幕周围的标签/线控制,我可以解决我的指南问题.请帮忙.

解决方法 这个代码有点复杂,但基本上你需要捕获表单上的MouseDown,MouseMove和MouseUp事件.像这样的东西:
public voID Form1_MouseDown(object sender,MouseEventArgs e){    if(e.button != Mousebutton.left)        return;    // Might want to pad these values a bit if the line is only 1px,// might be hard for the user to hit directly    if(e.Y == myControl.top)    {        if(e.X >= myControl.left && e.X <= myControl.left + myControl.WIDth)        {            _capturingMoves = true;            return;        }    }    _capturingMoves = false;}public voID Form1_MouseMove(object sender,MouseEventArgs e) {    if(!_capturingMoves)        return;    // Calculate the delta's and move the line here}public voID Form1_MouseUp(object sender,MouseEventArgs e) {    if(_capturingMoves)    {        _capturingMoves = false;        // Do any final placement    }}
总结

以上是内存溢出为你收集整理的c# – 如何允许用户在窗体上移动控件全部内容,希望文章能够帮你解决c# – 如何允许用户在窗体上移动控件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存