社区
C#
帖子详情
如何拖动一个控件?
csengine
2003-02-25 11:31:20
请有代码实现.
...全文
75
3
打赏
收藏
如何拖动一个控件?
请有代码实现.
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
「已注销」
2003-02-26
打赏
举报
回复
//这种是把一个外部的东西拖到程序的
//这个可以把一个图片拖到窗口显示
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
class ImageDrop: Form
{
bool bIsTarget;
protected string strProgName;
protected string strFileName;
protected Image image;
public static void Main()
{
Application.Run(new ImageDrop());
}
public ImageDrop()
{
Text = strProgName = "Image Drop";
ResizeRedraw = true;
AllowDrop = true;
}
protected override void OnDragOver(DragEventArgs dea)
{
if (dea.Data.GetDataPresent(DataFormats.FileDrop) ||
dea.Data.GetDataPresent(typeof(Metafile)) ||
dea.Data.GetDataPresent(typeof(Bitmap)))
{
if ((dea.AllowedEffect & DragDropEffects.Move) != 0)
dea.Effect = DragDropEffects.Move;
if (((dea.AllowedEffect & DragDropEffects.Copy) != 0) &&
((dea.KeyState & 0x08) != 0)) // Ctrl key
dea.Effect = DragDropEffects.Copy;
}
}
protected override void OnDragDrop(DragEventArgs dea)
{
if (dea.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] astr = (string[])
dea.Data.GetData(DataFormats.FileDrop);
try
{
image = Image.FromFile(astr[0]);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message, Text);
return;
}
strFileName = astr[0];
Text = strProgName + " - " + Path.GetFileName(strFileName);
Invalidate();
}
else
{
if (dea.Data.GetDataPresent(typeof(Metafile)))
image = (Image) dea.Data.GetData(typeof(Metafile));
else if (dea.Data.GetDataPresent(typeof(Bitmap)))
image = (Image) dea.Data.GetData(typeof(Bitmap));
bIsTarget = true;
strFileName = "DragAndDrop";
Text = strProgName + " - " + strFileName;
Invalidate();
}
}
protected override void OnMouseDown(MouseEventArgs mea)
{
if (image != null)
{
bIsTarget = false;
DragDropEffects dde = DoDragDrop(image,
DragDropEffects.Copy | DragDropEffects.Move);
if (dde == DragDropEffects.Move && !bIsTarget)
image = null;
}
}
protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
if (image != null)
grfx.DrawImage(image, 0, 0);
}
}
aaxu
2003-02-26
打赏
举报
回复
UP
TheAres
2003-02-25
打赏
举报
回复
To csengine (C#引擎):
简单的拖动这样就可以实现.
private int x,y,x1,y1;
private bool BeginDrag = false;
private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
x = e.X;
y = e.Y;
BeginDrag = true;
}
private void button1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
if(BeginDrag){
button1.Left += e.X - x;
button1.Top += e.Y - y;
BeginDrag = false;
}
}
private void button1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {
if(BeginDrag){
x1 = button1.Left + e.X - x;
y1 = button1.Top + e.Y - y;
Invalidate();
}
}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
if(BeginDrag){
System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Black);
e.Graphics.DrawRectangle(myPen,x1,y1,button1.Width,button1.Height);
}
}
C#在winForm窗体中添加
一个
可以自由
拖动
的
控件
C#在winForm中添加
一个
可以自由
拖动
的
控件
C#将
一个
控件
拖动
到另外
一个
控件
上
在
拖动
事件中一般是MouseMove或者ItemDrag事件中调用源
控件
ListDragSource实例的DoDragDrop方法(实际上用目标
控件
ListDragTarget实例的DoDragDrop方法)。该方法用于传递源
控件
中的选中项,及
拖动
效果DragDropEffects,并触发DragDrop事件(这里触发所有DragDrop事件,不分是源
控件
的DragDrop事件还是目标
控件
的DragDrop事件)。
android 横向
拖动
选取,Android HorizontalRefresh
一个
可以左右
拖动
刷新的
控件
欢迎Follow我的GitHub, 关注我的CSDN. 其余参考Android目录.欢迎关注我们的微信公众号:杨守乐转载来源:杨守乐本文由:【吧主的博客】分享每日英语life is crazy! we chase what we can't have, and run away from what we desire the most!.生活有的时候很疯狂,我们追逐那些无法拥有的,却放弃那些我们最...
张高兴的 UWP 开发笔记:用 Thumb
控件
仿制
一个
可
拖动
Button
在 WPF 上可用的
控件
拖动
方法在 UWP 上大多没用,那干脆用 Thumb 仿制
一个
吧。 关于 Thumb
控件
的教程也不多,毕竟在 WPF
控件
拖动
有很多种方法, Thumb 就显得很鸡肋了。下面我就简单的说说。(MSDN 文档) 不谈什么属性和方法,大多数都是继承的。主要说说 Thumb 的原生事件 DragStarted,DragDelta,DragCompleted。
一个
pyqt图片缩放
拖动
的
控件
_init__:构造函数,用于初始化窗口、加载图片、设置初始缩放比例等。:处理鼠标按下、移动和释放事件,实现图片的
拖动
。wheelEvent:处理鼠标滚轮事件,实现图片的缩放功能。:程序的主窗口,设置了窗口标题、大小,并将自定义的ImageLabel设置为中心部件。接下来是ImageLabel类的定义,这是自定义的
一个
类,继承自QLabel,用于显示、缩放和
拖动
图片。
C#
111,128
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章