|
Use Form.Show() instead of Form.ShowDialog() - it should be as simple as that
--
Russell Morris
"Have you gone mad Frink? Put down that science pole!"
|
|
|
|
|
Thanks.
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Hello,
I'm actually working on a XML file editor. I actually can import XML files in a treeView, edit nodes and so on. I'd like to be able to save the modifications i'v done in my treeview to export it as an xml file. Do you know how to parse a treeView, and serialize it to save the result in a xml file ?
Thank you and long life to thecodeproject.com !
julien
|
|
|
|
|
A present is waiting for you on the home page.
|
|
|
|
|
Hi!
Can somebody send to me code of GUI thread written in C#?
How correctly stop bckground thread?
For current moment I found only such solution, but it often raise strange Exceptions...
I use such code in async progress dialog... but at moment when I say progress form to Finish his work it can raise to me exception, like:
************** Exception Text **************
System.Threading.ThreadAbortException: Thread was being aborted.
at System.Windows.Forms.UnsafeNativeMethods.SetFocus(IntPtr hWnd)
at System.Windows.Forms.ContainerControl.FocusActiveControlInternal()
at System.Windows.Forms.Form.set_Active(Boolean value)
at System.Windows.Forms.Form.WmActivate(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
<br />
public void AsyncShow()<br />
{<br />
if( m_guiThread == null )<br />
{<br />
ThreadStart start = new ThreadStart( BackgroundGUIThread );<br />
m_guiThread = new Thread( start );<br />
m_guiThread.Start();<br />
}<br />
}<br />
<br />
public void Finish()<br />
{<br />
try<br />
{<br />
this.Hide();<br />
<br />
m_guiThread.Abort(); <br />
m_guiThread.Join();<br />
}<br />
catch( Exception exc )<br />
{ <br />
Trace.WriteLine( exc.Message + "\r\n" + exc.StackTrace, "PrgDlg Exception" );<br />
}<br />
}<br />
<br />
private void BackgroundGUIThread()<br />
{<br />
Thread.CurrentThread.Name = "Background GUI MsgLoop Thread";<br />
<br />
try<br />
{<br />
this.Show();<br />
<br />
MSG msg = new MSG();<br />
<br />
while( WindowsAPI.GetMessage( ref msg, 0, 0, 0 ) )<br />
{<br />
WindowsAPI.TranslateMessage( ref msg );<br />
WindowsAPI.DispatchMessage( ref msg );<br />
}<br />
}<br />
finally<br />
{<br />
try<br />
{<br />
this.Close();<br />
}<br />
catch<br />
{<br />
}<br />
<br />
Trace.WriteLine( "Quit thread" );<br />
}<br />
}<br />
Good Luck
Alex Kucherenko
|
|
|
|
|
|
Thanks...
Not realy what I expect, but it can work without strange exceptions
Good Luck
Alex Kucherenko
|
|
|
|
|
Anyone know how to burn CD's using C#?? Does MS have an .NET or API for this? Thanks!
|
|
|
|
|
Its called IMAPI. Its based on COM. You might have to write a wrapper for .NET. I remember seeing a sample using this API on www.gotdotnet.com. Check under C++ Samples.
|
|
|
|
|
Yeah I did do a little research about IMAPI. Unfortunately, I know ZERO C++ and I'm dissapointed in the fact that CD Burning Classes were not introduced into the .NET Framework. WindowsXP has had built in burning for a while. Hopefully they'll add it with .NET 2.0.
|
|
|
|
|
I would like to access a legacy ms sql 6.5 database from a c# application. When I execute the connect method, it tells me only 7.0 and above are supported. Does anyone know a way around this?
|
|
|
|
|
Use ODBC.NET instead of the pseudo-native SQLServer .NET data provider.
|
|
|
|
|
Hi,
How can I determin If I run on a 9x or a NT-based box?
I need to query some ugly registry keys that differe between the two...
Italian is a beautiful language. amare means to love, and amara bitter.
sighist | Agile Programming | doxygen
|
|
|
|
|
System.Environment.OSVersion.PlatformID != System.PlatformID.Win32NT
(use .NET SDK WinCV.exe to browse the CLR features by keyword (the resultset is often better and richer than the MSDN7's index)).
|
|
|
|
|
Thanks! Someday I'll find my own way around the CLR...
(winCV seems a cute tool, but wouldn't have helped me here...)
Italian is a beautiful language. amare means to love, and amara bitter.
sighist | Agile Programming | doxygen
|
|
|
|
|
I have treeview in my application.How can I delete a node when I have its FullPath ?
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Given the actual implementation of the FullPath property :
private void GetFullPath(StringBuilder path, string pathSeparator) {
if (this.parent != null) {
this.parent.GetFullPath(path, pathSeparator);
if (this.parent.parent != null)
path.Append(pathSeparator);
path.Append(this.text);
}
}
the only way to Remove a TreeNode based on its FullPath is to parse it and browse the parent/children hierarchy with a recursive routine, seeking the actual TreeNode.
|
|
|
|
|
I got the point.Thank you very much.
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Does anyone know how to send keystrokes/mouse clicks remotely? (aka pcAnywhere)? For example, i have a client connecting to the remote host, can view the remote desktop and run a program (let's say defrag) and want to send a mouse click / keystroke across (using co-ordinates i suppose) to allow the end user to "control" the remote pc. Is there a sample code for this or is it even possible in C#?
|
|
|
|
|
you would need to have some service executing on the remote pc to proxy the commands for you.
"When the only tool you have is a hammer, a sore thumb you will have."
|
|
|
|
|
Hey folks - hope you can help me!
OK - in VB I can do this:
Dim x as Object = CreateObject("Word.Application") Is there a similar thing in C#? (without creating version dependencies - I want to link to either Word 2000 or XP?
Thanks!
--
Andrew.
|
|
|
|
|
At least two ways :
1- integrate interoped assemblies by just right-clicking on the References item, then add a reference to the Word type-library. (msoxxx.dll). MS distributes reference Office assemblies known as PIAs.
2- explicitely ask the CLR to create wrappers for the COM type-library :
- Type t = Type.GetTypeFromProgID("Word.Application");
- WordObject obj = Activator.CreateInstance(t);
Unfortunately, with the obj running, you have no object model to play with. You need to create a wrapper : look Marshal.CreateWrapperOfType(...).
|
|
|
|
|
Thanks - the second method was just what I was looking for! I've not done much C# yet (only just got hold of the final release of VS.NET) but have got a small project that I thought would benefit nicely from .NET.
--
Andrew.
|
|
|
|
|
is this correct regarding delegates (?) :
if you have a usercontrol , and make it listen to the parent containers mousemove events (say it hooks itself to the parent in the "parentchanged" event)
will the mouse event handlers create a strong ref from the parent to the usercontrol?
(i beleve it does)
the problem if so , is if you remove the usercontrol from its parent , and loose all references to it. (the only valid ref still alive is the delegate target in the parents mouse event)
now , will this usercontrol be garbage collected?
(i beleve it doesnt , since ive profiled this with a mem profiler)
is all the above correct?? , and if not , how come are the usercontrol still alive and kicking when profiling ,even if i have called gc.collect() after loosing all refs.
do i really HAVE TO call .Dispose() on my usercontrol before dropping all refs to it?
and if so , is that really good/standard windows forms coding practice?
according to msdn you should NEVER call .dispose() unless the target holds valuable resources such as gdi objects , file pointers etc , and never ever do it if you are simply dealing with managed code..
//Roger
ps.
if you add a Console.Writeline("blah") to the destructor and dispose you can clearly see that they does NOT fire when the usercontrol have attached itself to some parent container events ,
while if you remove the eventhandlers , finalize and dispose fire just fine...
|
|
|
|
|
I think the solution is that if your usercontrol hooks itself to the parent's events it should also unhook itself. If you remove the control from its parent the control will get a ParentChanged event and the Parent will now be null. For example, the following code within the user control seems to work:
private Control parent = null;
private MouseEventHandler meh = null;
private void UserControl1_ParentChanged(object sender, System.EventArgs e) {
// Unhook from previous parent (if any)
if (parent != null) {
parent.MouseMove -= meh;
}
// Remember new parent
parent = Parent;
// Hook new parent (if any)
if (parent != null) {
if (meh == null) meh = new MouseEventHandler(parent_MouseMove);
parent.MouseMove += meh;
}
}
Chris Jobson
|
|
|
|