Solved

Pass the content of listview column[1] to a string.

Posted on 2014-02-05
4
218 Views
Last Modified: 2014-02-06
Hi,
I have a listview which the user can enter data through an input-form. When the user double clicks on the row of the listview the input form appears. But when the user double clicks on the same row the input-form appears twice. I am busy to prevent this.

Every input-form has a label with a date showing and it's a unique value stored in the column 1 of the listview when the user closes the input-form. I want to use that unique value to determine if an certain input-form is allready openend. By creating a list of strings. So when the user opens an input-form the date of the label will be added to the list of strings.

private List<string> opened = new List<string><();

        private void bbNewNote_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            StickyNotes sticky = new StickyNotes();
            sticky.gpclCaption.Text = "New Note";
            sticky.rtbContent.Clear();
            sticky.lblCreation.Text = (DateTime.Now.ToString());
            opened.Add(sticky.lblCreation.Text);
            sticky.FormClosed += new FormClosedEventHandler(sticky_FormClosed);
            sticky.Show();
        }

Open in new window


So now I have to write code to determine when the user double clicks on the row of the listview if the input-form allready exists.

        private void lvNotes_DoubleClick(object sender, EventArgs e)
        {
            string selectedId = this.lvNotes.SelectedItems[0].ToString(); <=======
            if (opened.Contains(selectedId)) return;
            OpenSticky(lvNotes.SelectedItems[0]);
        }

Open in new window


At the line that I have marked with an arrow is the line that is not correct.
In that line i have to pass the content of lvNotes.Column[1] to the string
selectedId.

What do I do wrong?

Greetings, Peter Kiers
0
Comment
Question by:peterkiers
[X]
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
  • 3
4 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39838069
I'd open the input form as a modal window (which disables the form with your your listview until that modal window is closed).

Having said that there should be an Application.OpenForms which contain all open forms in the application - so you can check the contents of that to determine if this input form is already open.

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.openforms%28v=vs.110%29.aspx
0
 
LVL 1

Author Comment

by:peterkiers
ID: 39838568
Hi, I need the content of item 1 and put it in a string called selectedID

string selectedId = this.lvNotes.SelectedItems[0].ToString(); <=======

How can i do that?

Peter
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points
ID: 39838631
string selectedId = this.lvNotes.SelectedItems[0].SubItems[0].ToString();
SelectedItems brings a collection of complete rows back, you need to interrogate the sub items to get the column
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39838635
ps.  This is clearly documented in the help files.  You seem to have a habit of asking questions that can easily be solved by yourself just by looking up what the function returns for instance.  In this case there is even example code to do more or less what you wanted.

eg.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.selecteditems%28v=vs.110%29.aspx
0

Featured Post

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

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

It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

733 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