精华内容
下载资源
问答
  • ![图片说明](https://img-ask.csdn.net/upload/201801/14/1515922009_99343.png)
  • 不管什么itext,jaboc,poi,都过来,能做出来就行!
  • <!-- 下面这个只能放在Action之后 --> <message-resources parameter="MessageResources"></message-resources> 此处的文件是MessageResources....各个标签之间是有顺序的,要不会提示出现错误(在处有一条红线
    <!-- 下面这个只能放在Action之后 -->
    <message-resources parameter="MessageResources"></message-resources>

    此处的文件是MessageResources.properties,在parameter这个属性里面不用加入扩展名
    各个标签之间是有顺序的,要不会提示出现错误(在<struts-config>处有一条红线)
    展开全文
  • 如果鼠标正拖放至行上方时绘制一条红线: private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { // 如果当前行是鼠标拖放过程的所在行 if (e.RowIndex == ...

    效果预览:
    效果图

    首先设置DataGridView控件的AllowDrop属性为True,MultiSelect为False,SelectionMode为FullRowSelect

    在窗口类里定义基本的变量:

    // 数据表
    DataTable dataTable = new DataTable();
    // 拖动的源数据行索引
    private int indexOfItemUnderMouseToDrag = -1;
    // 拖动的目标数据行索引
    private int indexOfItemUnderMouseToDrop = -1;
    // 拖动中的鼠标所在位置的当前行索引
    private int indexOfItemUnderMouseOver = -1;
    // 不启用拖放的鼠标范围
    private Rectangle dragBoxFromMouseDown = Rectangle.Empty;


    然后在窗口加载时添加示例数据:

    private void MainForm_Load(object sender, EventArgs e)
    {
        dataTable.Columns.Add("ID", typeof(int));
        dataTable.Columns.Add("Column1", typeof(string));
        dataTable.Columns.Add("Column2", typeof(string));
        for (int id = 1; id <= 20; id++)
            dataTable.Rows.Add(id, string.Format("A{0}", id), string.Format("B{0}", id));
    
        dataGridView.DataSource = dataTable;
    }

    响应鼠标的按下抬起事件:

    private void dataGridView_MouseDown(object sender, MouseEventArgs e)
    {
        // 通过鼠标按下的位置获取所在行的信息
        var hitTest = dataGridView.HitTest(e.X, e.Y);
        if (hitTest.Type != DataGridViewHitTestType.Cell)
            return;
    
        // 记下拖动源数据行的索引及已鼠标按下坐标为中心的不会开始拖动的范围
        indexOfItemUnderMouseToDrag = hitTest.RowIndex;
        if (indexOfItemUnderMouseToDrag > -1)
        {
            Size dragSize = SystemInformation.DragSize;
            dragBoxFromMouseDown = new Rectangle(new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)), dragSize);
        }
        else
            dragBoxFromMouseDown = Rectangle.Empty;
    
    }
    
    private void dataGridView_MouseUp(object sender, MouseEventArgs e)
    {
        // 释放鼠标按键时清空变量为默认值
        dragBoxFromMouseDown = Rectangle.Empty;
    }


    鼠标在按下状态移动时开始拖放过程:

    private void dataGridView_MouseMove(object sender, MouseEventArgs e)
    {
        // 不是鼠标左键按下时移动
        if ((e.Button & MouseButtons.Left) != MouseButtons.Left)
            return;
        // 如果鼠标在不启用拖动的范围内
        if (dragBoxFromMouseDown == Rectangle.Empty || dragBoxFromMouseDown.Contains(e.X, e.Y))
            return;
        // 如果源数据行索引值不正确
        if (indexOfItemUnderMouseToDrag < 0)
            return;
    
        // 开始拖动,第一个参数表示要拖动的数据,可以自定义,一般是源数据行
        var row = dataGridView.Rows[indexOfItemUnderMouseToDrag];
        DragDropEffects dropEffect = dataGridView.DoDragDrop(row, DragDropEffects.All);
    
        //拖动过程结束后清除拖动位置行的红线效果
        OnRowDragOver(-1);
    }


    鼠标拖动过程中移动过数据行时执行重绘:

    private void dataGridView_DragOver(object sender, DragEventArgs e)
    {
        // 把屏幕坐标转换成控件坐标
        Point p = dataGridView.PointToClient(new Point(e.X, e.Y));
    
        // 通过鼠标按下的位置获取所在行的信息
        // 如果不是在数据行或者在源数据行上则不能作为拖放的目标
        var hitTest = dataGridView.HitTest(p.X, p.Y);
        if (hitTest.Type != DataGridViewHitTestType.Cell || hitTest.RowIndex == indexOfItemUnderMouseToDrag)
        {
            e.Effect = DragDropEffects.None;
            OnRowDragOver(-1);
            return;
        }
    
        // 设置为作为拖放移动的目标
        e.Effect = DragDropEffects.Move;
        // 通知目标行重绘
        OnRowDragOver(hitTest.RowIndex);
    }



    鼠标拖放至目标行释放时:

    private void dataGridView_DragDrop(object sender, DragEventArgs e)
    {
        // 把屏幕坐标转换成控件坐标
        Point p = dataGridView.PointToClient(new Point(e.X, e.Y));
    
        // 如果当前位置不是数据行
        // 或者刚好是源数据行的下一行(本示例中假定拖放操作为拖放至目标行的上方)
        // 则不进行任何操作
        var hitTest = dataGridView.HitTest(p.X, p.Y);
        if (hitTest.Type != DataGridViewHitTestType.Cell || hitTest.RowIndex == indexOfItemUnderMouseToDrag + 1)
            return;
    
        indexOfItemUnderMouseToDrop = hitTest.RowIndex;
    
        // * 执行拖放操作(执行的逻辑按实际需要)
    
        var tempRow = dataTable.NewRow();
        tempRow .ItemArray = dataTable.Rows[indexOfItemUnderMouseToDrag].ItemArray;
        dataTable.Rows.RemoveAt(indexOfItemUnderMouseToDrag);
    
        if (indexOfItemUnderMouseToDrag < indexOfItemUnderMouseToDrop)
            indexOfItemUnderMouseToDrop--;
    
        dataTable.Rows.InsertAt(tempRow, indexOfItemUnderMouseToDrop);
    }


    如果鼠标正拖放至行上方时绘制一条红线:

    private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
    {
        // 如果当前行是鼠标拖放过程的所在行
        if (e.RowIndex == indexOfItemUnderMouseOver)
            e.Graphics.FillRectangle(Brushes.Red, e.RowBounds.X, e.RowBounds.Y, e.RowBounds.Width, 2);
    }

    用到的方法,强制行进行重绘:

    private void OnRowDragOver(int rowIndex)
    {
        // 如果和上次导致重绘的行是同一行则无需重绘
        if (indexOfItemUnderMouseOver == rowIndex)
            return;
    
        int old = indexOfItemUnderMouseOver;
        indexOfItemUnderMouseOver = rowIndex;
    
        // 去掉原有行的红线
        if (old > -1)
            dataGridView.InvalidateRow(old);
    
        // 绘制新行的红线
        if (rowIndex > -1)
            dataGridView.InvalidateRow(rowIndex);
    }


    这样就是可以实现拖放效果了,拖放后的逻辑操作你可以自定义
    [点这里下载完整的示例代码]

    转载于:https://www.cnblogs.com/jeffrey84/archive/2010/01/14/1647265.html

    展开全文
  • 如果鼠标正拖放至行上方时绘制一条红线: view source print ? 1 private void dataGridView_RowPostPaint( object sender, DataGridViewRowPostPaintEventArgs e) 2 { 3   ...

    效果预览:
    效果图

    首先设置DataGridView控件的AllowDrop属性为True,MultiSelect为False,SelectionMode为FullRowSelect

    在窗口类里定义基本的变量:

    01 // 数据表
    02 DataTable dataTable = new DataTable();
    03 // 拖动的源数据行索引
    04 private int indexOfItemUnderMouseToDrag = -1;
    05 // 拖动的目标数据行索引
    06 private int indexOfItemUnderMouseToDrop = -1;
    07 // 拖动中的鼠标所在位置的当前行索引
    08 private int indexOfItemUnderMouseOver = -1;
    09 // 不启用拖放的鼠标范围
    10 private Rectangle dragBoxFromMouseDown = Rectangle.Empty;


    然后在窗口加载时添加示例数据:

    01 private void MainForm_Load(object sender, EventArgs e)
    02 {
    03     dataTable.Columns.Add("ID", typeof(int));
    04     dataTable.Columns.Add("Column1", typeof(string));
    05     dataTable.Columns.Add("Column2", typeof(string));
    06     for (int id = 1; id <= 20; id++)
    07         dataTable.Rows.Add(id, string.Format("A{0}", id), string.Format("B{0}", id));
    08  
    09     dataGridView.DataSource = dataTable;
    10 }

    响应鼠标的按下抬起事件:

    01 private void dataGridView_MouseDown(object sender, MouseEventArgs e)
    02 {
    03     // 通过鼠标按下的位置获<script type="text/javascript"><!--mce:0--></script><script type="text/javascript"><!--mce:1--></script><script type="text/javascript"><!--mce:2--></script><script type="text/javascript"><!--mce:3--></script>取所在行的信息
    04     var hitTest = dataGridView.HitTest(e.X, e.Y);
    05     if (hitTest.Type != DataGridViewHitTestType.Cell)
    06         return;
    07  
    08     // 记下拖动源数据行的索引及已鼠标按下坐标为中心的不会开始拖动的范围
    09     indexOfItemUnderMouseToDrag = hitTest.RowIndex;
    10     if (indexOfItemUnderMouseToDrag > -1)
    11     {
    12         Size dragSize = SystemInformation.DragSize;
    13         dragBoxFromMouseDown = new Rectangle(new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)), dragSize);
    14     }
    15     else
    16         dragBoxFromMouseDown = Rectangle.Empty;
    17  
    18 }
    19  
    20 private void dataGridView_MouseUp(object sender, MouseEventArgs e)
    21 {
    22     // 释放鼠标按键时清空变量为默认值
    23     dragBoxFromMouseDown = Rectangle.Empty;
    24 }


    鼠标在按下状态移动时开始拖放过程:

    01 private void dataGridView_MouseMove(object sender, MouseEventArgs e)
    02 {
    03     // 不是鼠标左键按下时移动
    04     if ((e.Button & MouseButtons.Left) != MouseButtons.Left)
    05         return;
    06     // 如果鼠标在不启用拖动的范围内
    07     if (dragBoxFromMouseDown == Rectangle.Empty || dragBoxFromMouseDown.Contains(e.X, e.Y))
    08         return;
    09     // 如果源数据行索引值不正确
    10     if (indexOfItemUnderMouseToDrag < 0)
    11         return;
    12  
    13     // 开始拖动,第一个参数表示要拖动的数据,可以自定义,一般是源数据行
    14     var row = dataGridView.Rows[indexOfItemUnderMouseToDrag];
    15     DragDropEffects dropEffect = dataGridView.DoDragDrop(row, DragDropEffects.All);
    16  
    17     //拖动过程结束后清除拖动位置行的红线效果
    18     OnRowDragOver(-1);
    19 }


    鼠标拖动过程中移动过数据行时执行重绘:

    01 private void dataGridView_DragOver(object sender, DragEventArgs e)
    02 {
    03     // 把屏幕坐标转换成控件坐标
    04     Point p = dataGridView.PointToClient(new Point(e.X, e.Y));
    05  
    06     // 通过鼠标按下的位置获取所在行的信息
    07     // 如果不是在数据行或者在源数据行上则不能作为拖放的目标
    08     var hitTest = dataGridView.HitTest(p.X, p.Y);
    09     if (hitTest.Type != DataGridViewHitTestType.Cell || hitTest.RowIndex == indexOfItemUnderMouseToDrag)
    10     {
    11         e.Effect = DragDropEffects.None;
    12         OnRowDragOver(-1);
    13         return;
    14     }
    15  
    16     // 设置为作为拖放移动的目标
    17     e.Effect = DragDropEffects.Move;
    18     // 通知目标行重绘
    19     OnRowDragOver(hitTest.RowIndex);
    20 }

     

    鼠标拖放至目标行释放时:

    01 private void dataGridView_DragDrop(object sender, DragEventArgs e)
    02 {
    03     // 把屏幕坐标转换成控件坐标
    04     Point p = dataGridView.PointToClient(new Point(e.X, e.Y));
    05  
    06     // 如果当前位置不是数据行
    07     // 或者刚好是源数据行的下一行(本示例中假定拖放操作为拖放至目标行的上方)
    08     // 则不进行任何操作
    09     var hitTest = dataGridView.HitTest(p.X, p.Y);
    10     if (hitTest.Type != DataGridViewHitTestType.Cell || hitTest.RowIndex == indexOfItemUnderMouseToDrag + 1)
    11         return;
    12  
    13     indexOfItemUnderMouseToDrop = hitTest.RowIndex;
    14  
    15     // * 执行拖放操作(执行的逻辑按实际需要)
    16  
    17     var tempRow = dataTable.NewRow();
    18     tempRow .ItemArray = dataTable.Rows[indexOfItemUnderMouseToDrag].ItemArray;
    19     dataTable.Rows.RemoveAt(indexOfItemUnderMouseToDrag);
    20  
    21     if (indexOfItemUnderMouseToDrag < indexOfItemUnderMouseToDrop)
    22         indexOfItemUnderMouseToDrop--;
    23  
    24     dataTable.Rows.InsertAt(tempRow, indexOfItemUnderMouseToDrop);
    25 }


    如果鼠标正拖放至行上方时绘制一条红线:

    1 private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
    2 {
    3     // 如果当前行是鼠标拖放过程的所在行
    4     if (e.RowIndex == indexOfItemUnderMouseOver)
    5         e.Graphics.FillRectangle(Brushes.Red, e.RowBounds.X, e.RowBounds.Y, e.RowBounds.Width, 2);
    6 }

    用到的方法,强制行进行重绘:

    01 private void OnRowDragOver(int rowIndex)
    02 {
    03     // 如果和上次导致重绘的行是同一行则无需重绘
    04     if (indexOfItemUnderMouseOver == rowIndex)
    05         return;
    06  
    07     int old = indexOfItemUnderMouseOver;
    08     indexOfItemUnderMouseOver = rowIndex;
    09  
    10     // 去掉原有行的红线
    11     if (old > -1)
    12         dataGridView.InvalidateRow(old);
    13  
    14     // 绘制新行的红线
    15     if (rowIndex > -1)
    16         dataGridView.InvalidateRow(rowIndex);
    17 }


    这样就是可以实现拖放效果了,拖放后的逻辑操作你可以自定义
    [点这里下载完整的示例代码]

     

    原文地址:http://www.cnblogs.com/jeffrey84/archive/2010/01/14/1647265.html

    转载于:https://www.cnblogs.com/kafony/archive/2010/10/05/1843043.html

    展开全文
  • 亚马逊运营利润高,赚钱空间大,但是平台规则复杂,相关政策和规则也特别多,以下几导致Listing被下架的规定,切记! 、违规合并变体 最近大批卖家账号被封就因为违规合并变体,这些商家不不同外观的产品合并在...

    亚马逊运营利润高,赚钱空间大,但是平台规则复杂,相关政策和规则也特别多,以下几条导致Listing被下架的规定,切记!在这里插入图片描述

    一、违规合并变体
    最近大批卖家账号被封就因为违规合并变体,这些商家不不同外观的产品合并在同一个链接里,被亚马逊平台发现、警告、封杀等

    二、违规拆分变体
    有些商家为了移除差评对于Listing的影响,把Listing下面某一个有差评、销量差的变体直接拆除,企图消除这些个差评的变体对于整体的影响。这也是违规操作。

    三、重复建设Listing
    有的商家因为同一件商品有不同供货源,就创建不同的Listing,选择不同的发货方式来配送,亚马逊平台明确规定:相同的产品不可以拥有多个ListingListing,如果这样做最总结果就是Listing被下架

    四、错误使用变体
    比如某卫浴产品有多种颜色,但有圆头和方头两个款式,但卖家只用oolor一种变体主题,而且款式仅作为关键词写在标题中。所以这件商品有两种款式,所以必须上传两种变体。
    在这里插入图片描述

    展开全文
  • 在机械设计的过程这40禁止事项是一定要遵守的,如下: 、提高强度和刚度的结构设计 1. 避免受力点与支持点距离太远 2. 避免悬臂结构或减小悬臂长度 3. 不要忽略工作载荷可以产生的有利作用 4. 受振动...
  • 二续 搜索词 ...1、首先,所有卖家都知道Search Terms每行可以填写1000个字元(约200个单词),但是据亚马逊证实,最后只会收录显示40个单词左右,所以后台配置关键词时,尽量把重点保持在前面40个...
  • 在他们看来,把信用卡额度养高以后,能套现的钱也就多了,刷出来只需要付出小笔手续费。而银行在大部分时候好像也并没有采取措施,难道对于信用卡的养卡套现行为,银行真的不会管吗?  银行为什么睁只眼闭...
  • canvas动态画一条不同颜色的线

    千次阅读 2019-08-15 17:13:11
    ##使用canvas动态画一条颜色不同的线,即前五个点连成一条黑线后五个点连成一条红线,并且动态呈现。 思路呈现 首先,了解非动态画一条不同颜色的线。 代码展示: <script> //demo1 不渐变线条 var c = ...
  • 工作了两三年一直用eclipse开发,今天换成idea,发现项目可以启动,但是,@autowired 却又一条红线 首先,file ->setting -> Editor ->Inspections -> spring - >spring Core ->code ->...
  • C语言错误:expression must be a modifiable lvalue 左边的变量是不可修改的变量。。。 实际上不是n错 而是 是c==
  • 1、用div控制在页面中显示一条直线: ...      在css样式中定义: div{ overflow:hidden; height:1px; background-color:red;...在页面中显示高度为1px的一条红线:  2、在页面中也是现实一条直线,
  • 去掉eclipse 红线

    千次阅读 2018-12-10 09:50:58
    选取windows--&gt;perferences --&gt; general--&gt;editors--&gt;text editor--&gt;annotation--&...(垂直滚动外的边框上出现个小方块)勾第三项时在出错的代码下...
  • +要计算两个参考线之间的距离值,请放置第个参考线,然后沿相同方向拖动第二个参考线。 +放置第二准则后,其距离(水平或垂直,以像素为单位)将被添加。 +双击以清除所有参考线和距离值。 +再次单击光子红线以...
  • 设置红线的位置和颜色,Element0是第1个点的位置,Element1是第2个点的位置,两点形成一条直线 让红线的一点跟随目标移动 private GameObject target;//炮塔触发到的对象 private LineRenderer Line;//红线 ...
  • 在宽屏机器上,看着那条竖着的红线非常不爽,一...然后不要选择图中的“白色”,不然你在当前选中行仍然会看到一条白线割裂屏幕的;完美的做法是选择“定制”,然后选择RGB,把Alpha值调到0,这样这条线就完全透明了。
  • 可以正常打印出结果,但是编译报错,Eslint or Tslint 都会给它加一红线,强迫症看着贼难受 在TypeScript中如果按JS的方式去获取对象属性,有时会提示形如Property 'value' does not exist on type 'Object'.
  • 在maven项目结构图里看到,存在一条红线,在idea的中文教程里有说到这一点, 这种红线代表依赖冲突,而且有时并不是因为冲突引起的,只是因为多个地方引用,所以也会出现红色线。而且在结构图里还有一条
  • 8月20日,最高人民法院正式发布新规:民间借贷利率上限被限定为LPR的4倍(现15.4%),大幅低于此前的24%和36% “两条红线”。该政策在二手车市场同样引起巨浪,二手车平台如何规避金融收紧风险尤为迫切。有不少业内...
  • 看到网上有很多实现此功能的代码,大概是找出历史...比如上图,如果一直循环在这里,那么整个线条是一致在循环的,这样的话,看到的将是个闭环的红线,即便是简单的流程,如果有回退,那么看到的记录里面,仍然...
  • 昨日,央视则报道引发舆论关注。互联网时代,个人信息...5分钟,上千,个人信息的泄露、贩卖和利用已经到了肆无忌惮的地步。一旦个人信息泄露,被有针对性地出售,轻则给人们的正常生活带来不便,重则会造成财...
  • 多出一条线

    2017-10-17 00:00:50
    问题:拖拽浏览器变换浏览器宽度,红线时隐时现。.box{ width:640rem; height:100rem; background-image: url("../img/bg.png"); background-size: 640rem 110rem; background-position: bottom left; }响应式...
  • 可以看到,现在“展示”按钮已经被选中了,对应的页面代码中第一条红线标出的元素,这里的class值是el-radio is-checked。然后隐藏按钮没有被选中,第二条红线标出来的代码中class的值是el-radio,明显能看出来这里...
  • 一般情况某个类有问题或者是该类中的方法有问题,总会在IDE中显示一条红线。但是这次确实是没有问题。我找到该类所在的子模块,使用mvn install。这个错误我之前遇到过,光update project是没有用的,update project...
  • 这张图只要看我划红线的两列就可以了,RoomID(会议室ID) 、AttendPerson(参会人员ID,多个以逗号分隔); 我遇到的问题是,根据用户ID查询某个用户,所有参会的记录,直接用LIKE是不行的,所以就用了以下方法...
  • APIO 2014 连珠线 题解

    2020-01-17 16:01:00
    题目大意: 有一个游戏,一开始有一个点,每次可以用一条红线将一个新点连向旧点,或者是断掉一条红线然后用一个新点和两条蓝线连接原先红线连接的两个点。现在给出一棵树,是某次游戏的最终结果,问可能的情况中...
  • 在VS2013中安装了visual assist X助手插件,出现了个小问题,那就是在VS代码的注释语句下面会自动出现红色线条,如果将注释是英文的则不会出现此类问题,下面介绍如何取消在汉字下面出现红色线条。 1、打开VS...
  • vuecli3项目打包部署的步骤如下: 修改 vue.config.js的配置文件 使用 npm build 或其它命令打包 搭建nginx服务器 配置nginx.conf文件 把打包的项目放到nginx指定目录 ...第一条红线是配置目前是生产环境;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 444
精华内容 177
关键字:

一条红线