|
Hi,
The solution depends on the treeview depth. If it finite and small (e.g. 3 fixed levels), you can write a function that will tell your program, what kind of node it clicked on based on its treeview position.
If the depth is indeterminate, you can assign some kind of identity object to the TreeNode's Tag property to tell one node type from another.
Regards,
Serge (Logic Software, Easy Projects .NET site)
|
|
|
|
|
I write the following code in my porject:
<br />
ppApp = new PowerPoint.Application();<br />
<br />
objPres = ppApp.Presentations.Add(MsoTriState.msoCTrue);<br />
<br />
for(int i=0; i<Page_number; i++)<br />
{<br />
objSlide = objPres.Slides.Add(i+1, PowerPoint.PpSlideLayout.ppLayoutText);<br />
<br />
objShape = objSlide.Shapes.AddPicture(SavePath + "\\PSPage" + (i+1).ToString()+ ".bmp",MsoTriState.msoFalse,MsoTriState.msoTrue,9,22,702,496);<br />
<br />
<br />
objPres.SlideShowSettings.ShowType = PowerPoint.PpSlideShowType.ppShowTypeWindow;<br />
objPres.SlideShowSettings.Run();<br />
objPres.SlideShowWindow.Activate(); <br />
I can add a presentation, add a slide, insert a picture,
and I can show the SlideShowWindow,
but I don't know how to active the window in PowerPoint 2003,
to do the code ppApp.ActiveWindow.View.Paste();
and I want to show the presentation with standard mode not SlideShowWindow,
Does anyone know how to do this...??
I can't find the solutions for a long time...
|
|
|
|
|
You could try to enumerate the Windows where the Presentation is current being displayed and call Activate (untested, but it should work):
DocumentWindows windows = presentation.Windows;
if (windows.Count > 0) windows[0].Activate(); You can also enumerate the DocumentWindows (using foreach , for example) and find a named view you want, then call Activate .
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
For a while now ... i keep seeing ...
[Serializable] or [other stuff] in '[]' ... and I don't fully understand what that meens .. if you can help me ... !
I'd also like to know all the thincs that can be wrote in [ ]
Lazar Mihai
Elev clasa XI C
Grup Scolar Sanitar
|
|
|
|
|
Attributes define metadata for class members.
Every Attribute is a class, e.g. SerializableAttribute. You can find more about those attribute classes in the .NET documentation.
|
|
|
|
|
|
Hello.
I've got the following problem:
There is a web application (ASP.NET), that needs to
authenticate users against local machine and Active Directory.
By default, the application works as ASPNET account (Win2000, XP).
When working on ASPNET account the apllication is able to do the following:
string path = "WinNT://" + evironment.MachineName + ",computer";<br />
DirectoryEntry entry = new DirectoryEntry(path, username, pwd);<br />
try<br />
{ <br />
Object o = entry.NativeGuid;<br />
}<br />
catch(...)<br />
{<br />
}
When run as ASPNET account (on XP) , the code is able to work correctly. However, when run as SYSTEM account, exception is thrown
"A specified logon session does not exist. It may already have been terminated."
I need to switch to system account, because I also need to authenticate users in Acitive Directory, and ASPNET this time cannnot connect to AD, whereas SYSTEM account can.
So, currently I can authenticate users either in local system (when run as ASPNET) or in AD (when run as SYSTEM), but not concurrently (i.e. I can not do this without restarting the process)
SYSTEM ASPNET (running XP)
LOCAL USERS - +
DOMAIN USES + -
SYSTEM ASPNET (running Win2000)
LOCAL USERS - -
DOMAIN USES + -
Questions:
1. Is there any way to grant local ASPNET account ability to connect to AD ?
2. Is there any way to allow SYSTEM account to authenticate users against local machine. (The inability seems ridiculous...) (Note: I cannot temporarily use impersonation [SYSTEM is granted right to
impersonate someone elese] to check credentials, since the application is a muliti user system and the fraction of time the app would work as somebody else (not system but e.g John.Smith ) would leed to errors. Ok, I might lock entire application functionality when somebody performs logon but this would be hugely ineffective and would require to redesign plenty of code. (The application is pretty complex))
Thanks for help
Michał Januszczyk
|
|
|
|
|
Michal,
I think you may get a better response if you try asking in the ASP.NET[^] forum specifically. I believe there may be some articles here on CP that cover this topic as well. HTH.
- Nick Parker My Blog | My Articles
|
|
|
|
|
hi, i wrote a small program in C# which uses threads.
But when i close the application ( this.close() ), it is not terminating the application. Application is still running in the task manager, but all windows of the applications are got closed.
I tried with closing all the threads ( t.abort() ), but it is not working.
Can any one solve the problem ?
M.V.Ravikumar
|
|
|
|
|
Declare your threads as background threads by setting the IsBackground property true, so they do not prevent the process from terminating.
www.troschuetz.de
|
|
|
|
|
Thank you for your quick response.
It solved my problem. But i didn't get the actual thing. If you have time, please enlighten me in this area, by giving some more info.
Application.exit() or the start form.close() , are both of them equal?
If we set isbackground property to true. after the form.close(), all the threads of the application will automatically aborted?
M.V.Ravikumar
|
|
|
|
|
Ravikumar_mv wrote:
Application.exit() or the start form.close() , are both of them equal?
No they are not! The Application.Exit method informs all message pumps that they must terminate, and then closes all application windows after the messages have been processed. Whereas the Form.Close only closes a form, which doesn't necessarily result in termination of your application.
Also note what the documentation for both methods states:
"CAUTION The Form.Closed and Form.Closing events are not raised when the Application.Exit method is called to exit your application. If you have validation code in either of these events that must be executed, you should call the Form.Close method for each open form individually before calling the Exit method."
Ravikumar_mv wrote:
If we set isbackground property to true. after the form.close(), all the threads of the application will automatically aborted?
Yes they get automatically aborted. Documentation for the IsBackground property says:
"Once all foreground threads belonging to a process have terminated, the common language runtime ends the process by invoking Abort on any background threads that are still alive."
www.troschuetz.de
|
|
|
|
|
Ravikumar_mv wrote:
If we set isbackground property to true. after the form.close(), all the threads of the application will automatically aborted?
It is best to set the .IsBackground property to true BEFORE you start the thread, not when you end it.
Also, writing your threads so that they can exit gracefully. This means handling some kind of flag or exception that signals the thread to close any open resources it has before it quits. Just doing a threadObject.Abort() on it will terminate the thread at just about any point, not necessarily when it's safe to do so.
For an example of this, see this[^] link on MSDN.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thank you for ur quick response. It solved my problem.
Sorry for my late response.
M.V.Ravikumar.
|
|
|
|
|
Hi,
I just can export table structure to excel. No data found. Pls help.
here is my code :
......
this.sqlDataAdapter.Fill(this.dsTables, "testTable");
DataGrid dg = new DataGrid();
dg.DataSource = this.dsTables.Tables["testTable"];
dg.DataBind();
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
this.enableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
dg.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
Thanks
Wilson
|
|
|
|
|
This question really belongs in the ASP.NET forum. It really has nothing to do with C#, even though the codebehind is written in it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Have you tried debugging it? Did the dsTables DataSet contain any data? Did you remember to use the SqlDataAdapter.TableMappings to make sure that the first result set ("Table") matched up with "testTable"? The SqlDataAdapter.SelectCommand may have in fact retrieved data but unless the table mappings are set up correctly, the "testTable" DataTable won't contain any data, so nothing but a skeleton table would be output to the HtmlTextWriter .
Step through the code and check the state of the variables with each relevent step (like after you Fill the DataSet , after you call db.DataBind , etc.).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
when i drop a DataAdapter on the form and use "generate dataset" command(by right clicking the dataadapter on the form), this error display :
there were problems generating winapplication1.DataSet1. To resolve this problem , build the project, fix any errors , and then generate the dataset again.
then i creat another application and another database but this message display again.(when i build project, has not error!)
I also reinstall my VS.NET completely, but i have problem with this error too.
thanks.
|
|
|
|
|
Reinstalling all that was a complete waste of time, obviously. There's nothing wrong with the development environment.
More than likely, the DataAdapter has an incorrect connection string in it and it can't connect to the database. I know your going to say, "But the string was generated by Visual Studio in the designer!" So what, it doesn't make it right. What your going to have to do is simplify the connection string and make sure that the options are set correctly. Using the designer to generate the database stuff is also an inefficient way of doing it. Your better off coding the data stuff by hand. That way, you'll have much better control over it and a much easier time troubleshooting any problems. You'll also learn a heck of a lot more, faster, than if you were to let the designer generate the code for you.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Reinstalling VS.NET is not a viable solution; it's not the problem - the .NET Framework is the problem, and VS.NET != .NET. Almost all the designers used by VS.NET is actually defined in the .NET base class libraries (BCL).
Did you actually follow the error message? Build and look for warnings and errors. Fix them, close the designer, and re-open it. This usually fixes the problem. Restarting VS.NET can also help. Creating a new application won't help - the problem is in the first application.
Another solution is to build the typed DataSet first. In VS.NET, right-click on your project (or a sub-folder) and select Add, Add New Item. Select "DataSet", give it a name, and click OK. Add top-level elements (as tables) and their elements (as fields). When you drag and drop a DataAdapter -derivative to your control designer and configure it, you can use a designer to map what would be selected into the typed DataSet you just created. This also gives you more control over column constraints, relationships (which enforces foreign key constraints and provides cascading capabilities), etc.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
Hi to all the printing experts out there ,
I have to print an image of a PCB(printed circuit board). I got an image of the PCB and it's real width and height. What is the best way to print this image in it's real size?
I haven't done any printing in C# yet; except using Crystal Reports. But I think that Crystal Reports won't be able to print the image correctly, if it's real size is larger than one page.
Best Regards
Bernd R.
The light at the end of the tunnel has been switched off temporarily due to budget problems...
|
|
|
|
|
Crystal Reports really isn't suited to this purpose anyway, and it would be overkill to deploy (there's several Merge Modules (if you're using a Windows Installer package) to distribute and you need a developer key).
There's three options when printing anything (including fix-width paragraphs for text): reduce the size of the object; crop the object; display the object on multiple pages.
Obviously the first two options are out since you care about the true size of the PCB and a partial PCB wouldn't be much help.
When you handle the PrintPage event of the PrintDocument , you can query the printable portion of that page by using the PrintPageEventArgs.MarginBounds , which is size of the page minus the margins for each side (these can be changed on a page-by-page basis using the PrintDocument.QueryPageSettings , but the printer has to support that and have the right paper loaded into trays or expect is correctly using a manual feed). When you draw the image, use the PrintPageEventArgs.Graphics property and call DrawImage initially using coordinates of Point(0, 0)</cod> and <code>PrintEventArgs.MarginBounds.Size .
If you do want to scale the image, use a different overload for Graphics.DrawImage call with the appropriate arguments. Several of these will scale the image.
Be sure to read the class documentation for the PrintDocument.PrintPage event in the .NET Framework SDK. It includes an example. There are also articles you could search for and look at here on CodeProject using the search bar just below the CodeProject logo at the top of the page.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Still trying to wrap my head around this security stuff, I still can't seem to find a simple way to find out if I have the needed permission when running my program before I call the code that would cause the error. What I would like to do is just see if I have access at the begining of my program and if not pop up a message box and exit. I am trying using the Demand but that seems to be the wrong usage, I also tried using the IsUnrestricted() but that doesn't even seem to be true when running locally.
<br />
FileIOPermission canAccess = new FileIOPermission(FileIOPermissionAccess.Write, "C:\\");<br />
try {<br />
canAccess.Demand()<br />
}<br />
catch {<br />
MessageBox.Show "Don't have permissions";<br />
}<br />
Is there another way to go about this?
|
|
|
|
|
You don't need to check, really. An exception will be thrown if you don't have the permission. Also, you can't demand a permission if you don't have it (it's more of a check, really). Such checks are handy when you want to know ahead of time if you can do something or not.
If you need that permission, it must be granted by a code group with an associated permission set (either custom or one of the pre-configured sets, like FullTrust), and the evidence gathered for your assembly must match the membership condition used for that code group (otherwise the code group policy isn't applied and your assembly (/assemblies) aren't granted the permission set you'd expect.
You've got the right idea, though.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|