ListBox To ListBox Drag Drop And Dataset?

Posted on 2009-05-19
Last Modified: 2012-06-27
I've found many good articles concerning ListBox drag-n-drop, but I'm still unsure how to update each ListBox's datasource. In this case each Listbox needs to connect to it's own dataset. Each datset will contain 4 columns, one of which is displayed in the ListBox. Upon drag-n-drop, the entire row needs transfered to the opposite dataset. I need to move data back-n-forth as well, not just one-way.

ListBox1 (displays only FirstLastName)  
ds1.tb1 [ID, FirstLastName, Mid, Bday, SS] (entire row moved to other dataset)

ListBox2 (displays only FirstLastName)  
ds2.tb2 [ID, FirstLastName, Mid, Bday, SS]
Question by:pointeman
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 12

Accepted Solution

wht1986 earned 500 total points
ID: 24427982
In the code below, I have 2 listboxes bound to 2 different datasets (but same schema)

To start with I fill one dataset with values from the database.

The code below shows how I can drag and drop items between the listboxes while moving the associated datarow from 1 dataset table to another.
namespace Win_Forms
    public partial class Form1 : Form
        public Form1()
        private void Form1_Load(object sender, EventArgs e)
        private void listBox1_DragDrop(object sender, DragEventArgs e)
            DataRow frow = (DataRow)(e.Data.GetData(e.Data.GetFormats()[0]));
        private void listBox2_DragDrop(object sender, DragEventArgs e)
            DataRow frow = (DataRow)(e.Data.GetData(e.Data.GetFormats()[0]));
        private void listBox1_MouseDown(object sender, MouseEventArgs e)
            if (listBox1.Items.Count == 0)
            int index = listBox1.IndexFromPoint(e.X, e.Y);
            DoDragDrop(ds1.Facilities[index], DragDropEffects.All);
        private void listBox2_MouseDown(object sender, MouseEventArgs e)
            if (listBox2.Items.Count == 0)
            int index = listBox2.IndexFromPoint(e.X, e.Y);
            DoDragDrop(ds2.Facilities[index], DragDropEffects.All);
        private void listBox1_DragOver(object sender, DragEventArgs e)
            e.Effect = DragDropEffects.All;
        private void listBox2_DragOver(object sender, DragEventArgs e)
            e.Effect = DragDropEffects.All;

Open in new window


Author Closing Comment

ID: 31583265
Excellent, thanks.........

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor ( Top Charts is a view in which you can set seve…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question