|
Probably not the best way to do this, but you could always make your parent listview "public static", and directly assign the values from your child. A major problem with this is, your main form would probably need to be static as well.
You could also store all the data in a class object, and return the object back to the main form, and extract all the data from the object.
Just a few suggestions.
I might be totally wrong.
|
|
|
|
|
A better way than making it static (you'll run into all kinds of problems with this approach, especially if you want to use the designer after making those suggested changes) is to either pass a reference to the ListView to the form you open, or make a public property that gets the ListView on the first form and pass a reference to the first form into the second form (probably better if you ever want to do similar things in the future), or - finally - provide a way to get the data from the second form inside the first form and then have your first form add the data to your ListView .
The latter method is probably best. This allows you to use that form in different places and different ways. Once ShowDialog returns, you can grab that data (in a collection, list, array, a single property or properties, or whatever) and use it however you want.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hello ,
I'm programming in C# in the SmartSolution for pocket PC environment .
I've defined a CAutoRestetEvent and noticed that there is only WaitOne() function
Which does not allow Time out .
I'm looking for something that will support waiting on a specific handle with timeout like - WaitOne(5000) .
Thanks in advance …
|
|
|
|
|
One of the more odious omissions from the Compact Framework.
You'll have to P/Invoke CreateEvent to create an event, and WaitForSingleObject to wait on it.
You may find the OpenNETCF Smart Device Framework[^] useful. This already contains appropriate P/Invokes in the OpenNETCF.Win32.Core class.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
I created an installer package which has been installed by several clients. Now I want to create a new version. I increased the version number and changed the upgrade code of the installer package and set the RemovePreviousVersion property to True and set the DetectNewerInstallerVersion to True as well. I have several registry setting setup in the registry editor. However if the client has a previous version of the application installed I want the system to remember those settings and not override them. Because the RemovePrevioiusVersion property is set to True the system removes all settings after which they are lost. However if I dont set this property to true the system willl install 2 version of the application on the target machine.
How can I create a package that overrides (or removes) the old version but doesn't override the registr values so that previous configuration settings will be maintained? I spend many days trying to find a solution but haven't had much luck. Also it must be possible to use this package as the first installer meaning that if the client never had the application installed before, he can run the setup to install the application. In other words it is not just a patch for older versions.
|
|
|
|
|
Never change the UpgradeCode! The UpgradeCode should remain constant throughout an application's installer's lifetime. It is the PackageCode and ProductCode that you must change. When you change the Version, you opt to leave the UpgradeCode alone. This is what associates the newer product with the older product. Read about the Upgrade table in the Windows Installer SDK on MSDN[^] for more information.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I got this nice little piece of code, that is meant to get a selected folder from a FolderBrowseDialog.
folderdlg.RootFolder = Environment.SpecialFolder.Desktop;<br />
<br />
if(folderdlg.ShowDialog(this.FindForm()) == DialogResult.OK)<br />
{<br />
textBox1.Text = folderdlg.SelectedPath;<br />
}<br />
But I get an empty BrowseFolderDialog, with no folders displayed. Anyone else having this problem? And if so, you found the solution?
If you need a screenshot, I can send some over the e-mail
Greetings....
|
|
|
|
|
hi
folderdlg.SelectedPath = Environment.SpecialFolder.Desktop;
|
|
|
|
|
does not work at all
Greetings....
|
|
|
|
|
hi
folderdlg.SelectedPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
|
|
|
Hi there!
I had the same strange problem. Make sure that the default threading model for your application is single-threaded apartment. When the default threading model is multithreaded apartment, the FolderBrowserDialog doesn't display the filetree for selecting a folder.
<br />
[System.STAThread]<br />
static void Main() <br />
{<br />
System.Windows.Forms.Application.Run(new MainForm());<br />
}<br />
Hope this helps? Otherwise there may be some more difficulties for displaying the FolderBrowserDialog.
|
|
|
|
|
Thank you very much, that was the solution
Greetings....
|
|
|
|
|
A couple things to add:
When you use ShowDialog to show a modal form, the form/dialog must be disposed. Also, the default for the RootFolder is already the SpecialFolder.Desktop , so you really don't need to set this.
A good way to dispose the dialog when you're done is like so:
using (FolderBrowserDialog dialog = new FolderBrowserDialog())
{
DialogResult result = dialog.ShowDialog(this);
if (result == DialogResult.OK)
somePathVariable = dialog.SelectedPath;
} This makes sure that the dialog is disposed even if an exception is thrown. If you don't, your memory consumption will continue to increase every time you show this form since the native resources aren't freed since the FolderBrowserDialog uses the SHBrowserForFolder and related native APIs.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi!
I have some question regarding your comment, which is as always very instructive.
Aren't the native resources of the FolderBrowserDialog freed in the Finalize-method which will be called by the garbage collector?
Which other classes must be disposed programmatically? Every class that has unmanaged resources?
THX in advance.
|
|
|
|
|
No, native resources are not freed by the GC because they are unmanaged. Pretty much anything that implements IDisposable should be disposed of when done, like the Graphics object which many people forget when they create them (as opposed to when it's passed in a PaintEventArgs , which gets disposed by the control after calling OnPaint , for example).
There was a pretty big section in this month's MSDN Magazine which will be online early next month (more than likely) that describes well when you should dispose, when you shouldn't, and when you should implement it and where things should be freed.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Good to know.
I think, i have to check my whole code for this because i always thought that the managed classes of Framework Class Library free all their resources when they are collected by GC. It's too bad i didn't learn about that earlier.
Can you provide a link where to find this article respectively where to look for it?
THX again!
|
|
|
|
|
As I mentioned, the May issue of MSDN Magazine has not been posted yet, though it was released in paper form.
You can, however, read Cleaning up Unmanaged Resources[^] in the .NET Framework SDK for more information now.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi again,
hope somebody could help me again,
<code>
string s = "<SAVE>";
textBox1.Text = textBox1.Text.Insert(0,s);
</code>
this is my Code when press a button. But in this case the String would inserted on first position in the textbox. How could i change the code to insert the code on Cursorposition. I've searched for it but found nothing that still works.
Eolus
If you want realize your dreams, you shouldn't sleep!
|
|
|
|
|
textBox1.Text.Insert(textBox1.SelectionStart, s)
« Superman »
|
|
|
|
|
Hi <<superman>>
thx for your fast reply, it works fine.
Eolus
If you want realize your dreams, you shouldn't sleep!
|
|
|
|
|
I have a .XSD file
and there are some table in this file
when a add a element in a table
a Exeception was throwed
the message is that
disobey the check or primKey or forinkey or not null
but i didn't define anything like the message sayed in that file
study everyday
|
|
|
|
|
when I use Fill Method
before Adding the element
when i use fill method there is nothing Exception
study everyday
|
|
|
|
|
This is an exception thrown by .NET - not your file. Your SQL query is returning results that violate the foreign key constraint. That is, if you have relationships set up in your DataSet (which appears to be the case) and you insert rows into the foreign table, then the foreign keys must exist in the primary table.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Is there a way to control instantiation of a class/object in c#?
I am trying to replicate the functionality of VB6 which allows you to specify whether the class can be instantiated by anyone, or whether it can only be used by other classes in the same project. What this would allow is the class being instantiated, and even returned by a "factory" construct, other code could USE the class, but it couldn't be instantiated elsewhere.
I've tried using "internal" in C#, but perhaps I'm using it wrong - or this doesn't really do what I'm wanting to do.
However, c# seems to insist that if a class is out there, it can be created anywhere.
Is there a way to do this?
Thanks.
|
|
|
|
|
The following modifiers can be used with classes:
public - Access is not restricted.
protected - Access is limited to the containing class or types derived from the containing class.
internal - Access is limited to the current assembly.
protected internal - Access is limited to the current assembly or types derived from the containing class.
private - Access is limited to the containing type.
So there is nothing wrong with using "internal", just you can instanciate the class from anywhere in the assembly.
|
|
|
|