ListBox1内有三项a,b,c
ListBox2内有三项1,2,3
从ListBox1中拖拽一项到ListBox2中去,比如拖拽b到3上,希望能实现在拖拽过程中生成一条直线连接b和3!以便形象的表示b和3联系起来了(类似与数据库中两个表建立关系)
一项可以和多项画线连接,多项对多项也可以连接,线条本身可选中删除;
需要记录每条线两端的信息,以便删除一条线的时候,可以在代码里处理取消两项的联系

解决方案 »

  1.   

    class ItemRelation
        {
            ListBox list1;
            ListBox list2;
            Dictionary<int, int> relations = new Dictionary<int, int>();
            public ItemRelation(ListBox list1, ListBox list2) {
                this.list1 = list1;
                this.list2 = list2;
                list1.FindForm().Paint += new PaintEventHandler(ItemRelation_Paint);
            }        void ItemRelation_Paint(object sender, PaintEventArgs e)
            {
                
            }
            public void AddRelations(int item_index_1, int item_index_2) {
                relations.Add(item_index_1, item_index_2);
            }
            void GetPointByItemIndex(int index) {
                
            }
        }
    还是太复杂了,帮不了你~~~
      

  2.   

    hengwang007(★★★★★) ,有别的方法更好,望赐教!!
      

  3.   

    用GDI+实现了!
    但是无法控制线的删除,因为GDI+只是在屏幕上画了一道线,如何对这个线条编辑(点选、删除)我不会~~~
    但是应该是可以的吧,比如用GDI+做一个画图程序,对画好的图进行扭曲,变形,填充等等,和这个道理应该是一样的
      

  4.   

    搜索了点资料,看看对LZ有没有帮助。
    http://blog.csdn.net/wzuomin/archive/2007/08/23/1755743.aspx
    http://blog.csdn.net/wzuomin/archive/2007/08/23/1755694.aspx
      

  5.   

    wzuomin(),感谢提供的连接
    从那里学了一些东西,不过可惜的是他也是GDI+直接画的,而且文章没写完,用GDI+直接画没办法对线条进行进一步操作
      

  6.   

    感谢wzuomin()
    那我再好好研究一下,谢谢了!