|
I guess the real question then is why someone with a 'shallow' knowledge of C# has a project to turn in 'fast' ??? Are you skating on the edge at work, or at school ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
If I have a form that is a set width and height, and I click on a menu item, thereby causing the form to become a different width and height, how do I cause the form to be recentered on the screen? Second, regarding mdi, how do I get other separate forms to become parented to the application's main form using the isMdiContainer = true property. That is, if I move the main form around the desktop, I would like any child forms to move within that main form's same deskspace. Any ideas?
|
|
|
|
|
The Form.Location property is the coordinates on the Screen where the Form is located. When the form is resized - whether a parent MDI or child MDI form - get the bounds of the parent (so for an MDI parent, this is the Screen.Bounds property) and do the simple path to adjust your form's location.
To get the current Screen on which the Form is mostly displayed (i.e., the majority is on a particular screen), use the static Screen.FromControl method.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I have a user control which handles the printing of various document types, and therefore contains its own page settings, pring preview, and print dialogs. I'd like to be able to save (preferably to an application's app.config file) the PageSettings and PrinterSettings, but PageSettings doesn't seem to be serializable.
How can I go about doing this? Do I need to manually write out the individual settings, or is there some better mechanism?
Thanks!
|
|
|
|
|
I would actually recommend saving page settings - perhaps even print settings - in the document itself if possible. This is actually a pretty common scenario.
For those types that aren't attributed with the SerializableAttribute , you need to implement ISerializationSurrogate to serialize and deserialize the object of a type for that surrogate (or write a generic one for all types, reflecting private and public fields yourself). The .NET Framework SDK has more details about this interface, though it's pretty straight forward to implement if you've ever implemented ISerializable .
To use the surrogate, when you create an instance of your IFormatter (like the BinaryFormatter ), add an instance of your surrogate using IFormatter.SurrogateSelector.AddSurrogate to add the type (only a single type for each call, but you can use the same surrogate instance), the StreamingContext (which describes the medium to which you serialize, primarily), and the instance of your ISerializationSurrogate implementation.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi all,
In Windows File Explorer, when you select a file, it will shows additional info like Author and Title for .doc file, Dimension for images, length, aurthor etc for MP3s.
My question is how can I retrieve such information in C#? I am aware that AVIFileInfo gives such info for avi file and I wonder if there is a way that works on every file type?
TIA!
|
|
|
|
|
While you can use an easy approach of interop'ing with shell32.dll (in VS.NET, add a reference to your project, click on the COM tab, and find "Microsoft Shell Controls and Automation") and using the Folder.GetDetailsOf method to get a property exposed to a column handler for that type. To get the right Folder , you can do something like this:
ShellClass shell = new ShellClass();
Folder folder = shell.Open("C:\path\My Music");
if (folder != null)
{
FolderItem file = folder.Items(0);
if (file != null)
string artist = folder.GetDetailsOf(file, 4);
} A better implementation is to get the IPropertySetStorage for the "\005SummaryInformation" storage stream, then use the IPropertySet to enumerate music properties (for example).
This requires quite a bit of knowledge about COM, COM interoperability with .NET (which is covered extensively in the .NET Framework SDK), and shell programming. I urge you to read the documentation for the two interfaces I previously mentioned before attempting this.
Why is this a better solution? The column handlers aren't gauranteed to be in a certain order and not every property is exposed through a column handler, so it limits your options. In may cases this may suit your needs, though. If you search for "GetDetailsOf" using the search feature of this site (the text box at the top of every page under the logo) you should be able to find a couple of articles that discuss this approach in more detail.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Thank you and I will definitely read more into it
|
|
|
|
|
Can I step into C++ COM object that I call from C# .NET web service in debugger? Both are mine. They're in the same project. It looks like it should be able to but can't load symbols for that interop.mycppobject.dll. Both projects are set to use/generate debug info and PDBs. Even when I put C++ PDB into the C# web service bin folder it still can't load symbols. How to make it to load sybols. Or may be the right question would be: how to make to create symbols for that interop....dll thing?
Help!
Thanks a lot!
|
|
|
|
|
Symbols aren't necessary for the interop assembly because it's only a proxy. An RCW (Runtime Callable Wrapper) proxies calls and marshals data from managed code to a COM component. It's only PDBs for the managed (sans the interop assembly) and native components you need.
To debug both executables you need to attach the debugger to, IIRC, aspnet_wp.exe pre-Win2K3, or inetsrv.exe, IIRC, for Win2K3. The COM library is loaded into the calling process. For Win2K and XP this is the ASP.NET worker process. For Win2K3 and above (most likely) this is IIS itself because it manages the application domains.
You shouldn't move the PDB file, though. The full path is coded into the PE/COFF executable header. This can also be located in your PATH environment variable, but leaving it where it is is often the easiest approach.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I'm on XP....
So. Wait. Debugger can step through from C# web service client into C# web service server (when it's on the same comp) and debug session in C# on the server side, but for it to debug COM objects for that session it needs to attach to the IIS which it already is debugging at that moment? Strange.
Sorry! I'm slow today.
|
|
|
|
|
I'm on XP....
So. Wait. Debugger can step through from C# web service client into C# web service server (when it's on the same comp) and debug session in C# on the server side, but for it to debug COM objects for that session it needs to attach to the IIS which it already is debugging at that moment? Strange.
Sorry! I'm slow today.
|
|
|
|
|
You need to first make sure that the native and managed debuggers are both running. This is an option when you attach your debugger to a process. It is selected, though - IIRC - you can override which debuggers start automatically for your project.
It's all a matter of connecting to the right machine - which sounds like your local machine for both cases - which may require that remote debugging be set up on the remote machine.
Debugging managed code and native code are very different things. In both cases the PE/COFF executables are loaded into the parent process (be that aspnet_wp.exe before Win2K3, and IIS itself beginning with Win2K3 (IIS6). How they are debugged is different.
To get a good feel for what you need to do to debug both projects, I recommend debugging each individually at first. Obviously you've got the managed debugging down, but now trying debugging a COM server (the DLL) separately without running from within an ASP.NET Web Service. You'll need to actually attach to another process that will load the COM server. In your scenario that will be whatever the calling process is that is handling ASP.NET requests and hosting its AppDomain(s).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
No. I want to debug that COM object FROM within that ASP.NET web service and I can't.
I check the "Processes..." and I see that my debuging session is already debuging aspnet_wp.exe and my C# WS Client executable.
Sorry if I'm beeing totaly off.
|
|
|
|
|
inner wrote:
No. I want to debug that COM object FROM within that ASP.NET web service and I can't.
I realize that that's your goal, but first be able to debug the COM server itself. You must also make sure that both the native and managed debuggers are running. The managed debugger doesn't handle native code.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi,
Can we create a webcontrol like
WebControl ctrl = new WebControl() ;
The above code is in a class that inherits from "System.Web.UI.UserControl"
It gives me error
'System.Web.UI.WebControls.WebControl.WebControl()' is inaccessible due to its protection level
Thanks for your help!
|
|
|
|
|
Well, you got your answer then, didn't you ?
What were you hoping to do with this 'webcontrol' ??
From MSDN:
Serves as the base class that defines the methods, properties and events common to all controls in the System.Web.UI.WebControls namespace.
It's a base class. It's empty contstructor is protected, although it has one that is public:
WebControl Constructor (HtmlTextWriterTag)
Initializes a new instance of the WebControl class using the specified HTML tag.
It took be 5 seconds to find all this out with google.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Thanks for your response.
I found about it on MSDN but I dont want to pass HtmlTextWriterTag.
Will passing this as a parameter and passing nothing make a difference?
|
|
|
|
|
I can only imagine that it would end in disaster. If you're creating your own control, just derive from UserControl, which is what you should do anyhow.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
WebControl 's parameterless constructor is protected , meaning that is only accessable to classes deriving from WebControl , which UserControl does not.
Charlie
if(!curlies){ return; }
|
|
|
|
|
Thanks for response.
That's why I worte like this:
public class MyControl: System.Web.UI.WebControls.WebControl
instead of
public class MyControl: System.Web.UI.UserControl
I was able to get rid of the error. I am not sure if that's the correct solution. By default, ascx control inherits from System.Web.UI.UserControl
|
|
|
|
|
I have an application that works fine on the developer server. This application has infragistics controls. When I move this application as it is to the production server, those infragistics buttons wouldn't respond. I checked the dlls, they are present in bin folder. I have no clue what was wrong. Does anyone have any suggestions to fix this problem?
Thanks.
|
|
|
|
|
I've had to work on a project using those controls. I ripped them out ASAP, they are crap. They also frequently break my exe. I'd recommend contacting them, and asking how to make their stupid buttons work.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Now I got them worked. In the IIS server I have to create a virtual directory ig_common which holds all the javascipts and graphic files for infragistics.
|
|
|
|
|
I am able to load a txt file. The first 5 line of the txt file are always the same. They are:
% PART NO. AZ-2S_SUP_AUTO_CHALK_WP
G90
G92
G93
F8.
I would like a way to automatically delete the first line when I load this file and replace it with the word OPEN. Does anybody have a simple way of doing this?
Please Help me.
Darren
|
|
|
|