http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6999|回复: 4

[HttpHelper] WinForm 求助

[复制链接]
发表于 2014-6-24 10:33:00 | 显示全部楼层 |阅读模式
1金钱
我写了一个窗体,在这个窗体上可以实现pictureBox的拖动和添加,同时不同的窗体背景下对应着不同的pictureBox数量,现在有个问题,当我切换背景时,控件的拖动就会很混乱,控件的实时坐标也混乱。我在网上查询可以利用双缓冲,但没有效果



希望大家不吝赐教



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-6-24 10:36:37 | 显示全部楼层
混乱是什么个情况,发个图片上来,或者是说清楚点
回复

使用道具 举报

 楼主| 发表于 2014-6-24 10:44:30 | 显示全部楼层

窗体

窗体

如图,当我窗体上拖动pictureBox时,控件就会闪动,控件的实时坐标就会变为-32768
回复

使用道具 举报

发表于 2014-6-24 12:28:09 | 显示全部楼层
那应该是是你计算位置的算法问题吧。正常是不会乱的。
回复

使用道具 举报

 楼主| 发表于 2014-6-24 14:37:17 | 显示全部楼层
站长苏飞 发表于 2014-6-24 12:28
那应该是是你计算位置的算法问题吧。正常是不会乱的。

        //当鼠标指针位于控件上并按下鼠标键时发生
        private void node_MouseDown(object sender, MouseEventArgs e)
        {
            mouse_offset = new Point(e.X, e.Y);
        }
        //鼠标移到控件上发生
        private void node_MouseMove(object sender, MouseEventArgs e)
        {
            Control control = (Control)sender;
            if (e.Button == MouseButtons.Left)
            {
                control.Left = control.Left + e.X - mouse_offset.X;
                control.Top = control.Top + e.Y - mouse_offset.Y;
            }
            this.label6.Text = "横坐标:" + control.Left + "\n纵坐标:" + control.Top;
             y1 = Convert.ToInt16(control.Left.ToString());
             z1= Convert.ToInt16(control.Top.ToString());

        }
        //在鼠标指针离开控件时发生
        private void node_MouseLeave(object sender, EventArgs e)
        {

            //修改数据库
            PictureBox pb = sender as PictureBox;
            string t = "";
            //已添加的节点
            for (int j = 0; j < dst.Tables[0].Rows.Count; j++)
            {
                if (pb.Name == node[j].Name)
                    t = node[j].Name;
            }
            //当前添加的节点
            for (int i = dst.Tables[0].Rows.Count; i < icount; i++)
            {
                if (pb.Name == node.Name)
                    t = node.Name;
            }

            MySqlConnection conn = new MySqlConnection("server=127.0.0.1;user=root;database=smart_agriculture;port=3306;Charset=utf8;");
            conn.Open();
            //更新节点坐标
            MySqlCommand Cmd = new MySqlCommand("update node_message set cod_x='" + y1 + "',cod_y='" + z1 + "' where add_mac='" + t + "';", conn);
            Cmd.ExecuteNonQuery();
            conn.Close();            
        }

这三个函数就是我用于控制pictureBox移动的

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 13:32

© 2014-2021

快速回复 返回顶部 返回列表