|
nevermind i fixed it by extending my custom grid
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
Hello,
I have been developing a program.
There are lots of forms, and I do need to show some of them(when they become necessary)
I was using a method to show a form inside a picturebox.
I have used the SetParent and GetParent apis to perform the operation that I wish in Visual Basic 6.
I was able to show a form inside a picture box or frame.
Show I can Load and Unload forms that I want.
How can I do that in C#?
Thank you for your time.
Best Regards
Emre YAZICI
|
|
|
|
|
One easy way that allows tabbing to work properly and looks natural is to use UserControls for your forms and create them as needed. You would place a panel control on your form where you want the embedded form to show and in your code, you would create the user control you want displayed and add the control to the Panel's Controls collection. When you want to change to another UserControl, you can clear the Panel's Controls collection and add the new one.
Another way is by using a tab control and convering the tabs.
And yet another way is to set the form's border you wish to embed to nothing and the control box to nothing (last step many not be needed) and set the Form's TopLevel to false; You can then add it to the Panel's Control list and use a Show() on the form. This will however cause you tabbing problems. I never went further than this since the UserControl method above gave me all that I could desire.
Rocky Moore <><
|
|
|
|
|
Hi,
how can I get the number and names of available child-forms within a Mdi-application. I need to know after starting the mdi-app, without having any child-form open.
Thanks
Joerg
|
|
|
|
|
Either implement a private count of MDI children as they are created and destroyed or use the following method in the MDIParent Form:
this.MDIChildren.Length
|
|
|
|
|
I have just added some print functionality to an application, and it looks just fine in the print preview, the margins come out just the way I want them, etc etc. But when I print to paper the whole printout has an offset of 1/4 inch to the right and down...
does anyone know/(have an idea) why this happens? Is it because of the printer?
When i for example use the PageBounds or the MarginBounds like this,
override void OnPrintPage(PrintPageEventArgs e)
{
Rectangle r1 = e.PageBounds;
Rectangle r2 = e.MarginBounds;
Graphics g = e.Graphics;
//set equal margins around all edges (cause that's what I want)
this.DefaultPageSettings.Margins = new Margins(20, 20, 20, 20);
//Test: draw bound rectangles to see what happens...
g.DrawRectangle(Pens.Black, r1);
g.DrawRectangle(Pens.Black, r2);
}
these rectangles are truly centered in the preview, but on paper they have the offset mentioned above.
Can anyone help me?
|
|
|
|
|
I should mention that when I test with other applications, i.e. MS Word, this doesn't happen so I don't believe I should blame the printer...
|
|
|
|
|
Hi!!
I've got a problem with remoting that I don't understand...
Could you explain me what happend with this code?? When I unregister the channel and try to get the object again, the code throws an exception...
tCreador = (Creador)Activator.GetObject(tType,"tcp://localhost:8082/Creador");
System.Runtime.Remoting.Channels.IChannel[] chns1 = ChannelServices.RegisteredChannels;
ChannelServices.UnregisterChannel(chns1[0]);
tCreador = (Creador)Activator.GetObject(tType,"tcp://localhost:8082/Creador");
Regards,
Iván.
Iván Fernández
|
|
|
|
|
If you unregistered channel, Client doesn't have means "to talk" to Server.
It's the same if would you tried to get reference to object without registering any channel.
You have to register channel again before the call of
Activator.GetObject .
"...hasn't really been well accepted ... as the ratings tell us so far " - Nishant S
|
|
|
|
|
I'm trying to make an activeX component in C#. From what I see in the article 'writting a COM object in c#', C# libraries are actually ActiveX objects !
But when I try to use them with the ActiveX Control Test Container, it simply fails to load them !
Geee !!!!!
Bad ! What is wrong here ?
and the regsrv32 does not want to register it, does not look like an activex to me !
Cheers, Pierre
|
|
|
|
|
mrpink wrote:
C# libraries are actually ActiveX objects
I don't think that's a correct statement, otherwise you will be able to see all the C# objects in the windows registry. But there could be a way to expose C# objects as COM objects.
|
|
|
|
|
|
This works fine !!!
Excellent, it is registered now ! The trick is that in the test container, it is hidden in a .Net section (so need to check a box to see it !)
Ok ! The problem is that it does not work then .. when added to the container : "Unspecified Idea" !!!!!
Do you have any idea how I can trap .. watch the error ?
Cheers,
Pierre.
|
|
|
|
|
There is no tool to help to do this using .NET, at least currently : we have tlbimp.exe, tlbexp.exe, aximp.exe. And guess what, we don't have axexp.exe.
Basically you need to export an object which exposes the common interfaces exposed by an ActiveX object, which are IOleObject, IOleControl, IDispatch just to name the few mandatory ones.
Exposing interfaces is not hard, tlbexp.exe does all the work.
But you have to create an object, which inherits those interfaces. At this point, if I was asked to do just that, I would try to derive the axhost class (winforms namespace), which is the base class used when it comes to instantiating ActiveX objects.
May be you are even better off writing everything from scratch.
To know what interfaces to implement, and to see the wonderful thing appear in the Control Test Container, I would recommend an old Fritz Onion article[^].
RSS feed
|
|
|
|
|
WAAARF !! This sounds awfully complex to me !!!
Thanks !
|
|
|
|
|
Sorry guy, here is how to do it :
http://www.codeproject.com/cs/miscctrl/exposingdotnetcontrols.asp
RSS feed
|
|
|
|
|
|
How can I create a form as a child window of another form?
|
|
|
|
|
Assuming your child form is called Form2, and this code is being called from another form:
Form2 form2 = new Form2();<br />
form2.Parent = this;
Or, if Form2 is to be displayed as a dialog box:
Form2 form2 = new Form2(this)<br />
|
|
|
|
|
Well, method 1 gives me:
An unhandled exception of type 'System.ArgumentException' occurred in system.windows.forms.dll
Additional information: Cannot add a top level control to a control.
And neither my own form nor the System.Windows.Forms.Form class has a (Form) constructor...
|
|
|
|
|
Set the new Form's TopLevel property to false before you make it Visible or Show() it.
|
|
|
|
|
Thanks! That worked.
However, the window is created with the WS_CHILD style, which makes it be "inside" the main window. This I do not want. How can I make it not use the WS_CHILD style, but still have the main window as its parent? I don't see any place to specify the window styles manually...
|
|
|
|
|
Hmm, also try
TopMost = true;
in addition to
TopLevel = false;
|
|
|
|
|
Hello,
I'm experiencing a problem with DataSets. If I use a DataSet as a parameter of a method in a Serviced Component, I always receive an InvalidCastException because something is trying to convert __ComObject to DataSet. When a method only returns a DataSet (no DataSet as parameter) there's no problem.
I'm running my application with framework 1.1, the serviced component is in Server mode.
Is this some bug in the .Net framework? Has anyone a solution or a workaround for this problem?
best regards,
Pieter
|
|
|
|
|
I don't know the answer but does the dataset serialize. You might have to implement the serializable interface. or just shoot it as an xml stream through. Com passes it as a stream anyhow.
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|