|
|
http://discuss.develop.com/archives/wa.exe?A2=ind0206d&L=advanced-dotnet&T=0&F=&S=&P=4192[^]
a snippet from that post by Ian Griffiths
"This [code] detects when it is being hosted in VS.NET (or any other environment that provides the IDesignerHost interface) and obtains a reference to the containing form if there is one. VS.NET will detect that the property's value is referring to the form, and correctly serializes this in the InitializeComponent method as:
this.containedByWindow1.ContainingForm = this;
So that's the code you want, but VS.NET will generate it automatically, meaning your users are no longer required to remember to type it."
HTH,
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
|
leppie wrote:
is all good and well for desugntime, but at runtime I still need a reference to the form's handle.
Which is where the link comes in; what you wind up doing is tricking the designer into persisting a reference to the hosting form. So at runtime you can get the handle to it from the reference you got during the InitializeComponent phase of the form loading process.
leppie wrote:
Is it even a good idea to make something like nBASS a component?
I would think so; especially if you implement something like the above to automatically get the handle.
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
|
I should have written down all the information:
I want to get the Form at run time, the code suggested is for design time only....However looking at the original message containing your the suggested code, examining the IL should contain the answer.
thanks for the suggestion,
Charlie
|
|
|
|
|
|
Anonymous wrote:
I want to get the Form at run time, the code suggested is for design time only
Thats the beauty of it though, the way it works is that at design time it gets assigned a reference to the form. Then when the Form designer goes to generate the code to recreate the component it sees that the property referencing the Form is not equal to the default value (null) so it serializes the property as a reference to the Form.
Even though the code to get the reference happens at design time, the reference is persisted by the designer. Then at run-time, when InitializeComponent is called on the Form it will reassign the reference to match the design-time state of the component.
Unfortunately this does no good if you want an easy solution for non-VS.NET/SharpDevelop users. As far as I know, there isn't any way to get the parent control that is hosting the component. And I'm not sure if there should be either because Components can be used anywhere, not necessarily used in conjunction with a Control/Form.
Sorry if I rambled, or didn't make sense I'm extremely tired and was just about to go to bed when I decided to check my e-mail.
James
"It is self repeating, of unknown pattern"
Data - Star Trek: The Next Generation
|
|
|
|
|
|
On a .NET Toolbar, how do I setup groups of buttons, such that only one button in a group is pressed. For example, if I have 3 different view modes, each represented by a button on the toolbar, how do I ensure that only one is pressed (sunk) at a time? Is there a property I can set, or do I need to code it?
Thanks in advance.
Kyosa Jamie Nordmeyer - Cho Dan
Portland, Oregon, USA
|
|
|
|
|
Does anyone know how to spawn a command with a set of environment variables?
I am using Process which does seem to have:
p.StartInfo.EnvironmentVariables
But it is read only, or only has a get function.
|
|
|
|
|
|
.Add()
Ok I feel dumb...
Thanks!
|
|
|
|
|
You need to set them BEFORE creating the process object.
ProcessStartInfo pinfo = new ProcessStartInfo(emuPath);
pinfo.EnvironmentVariables.Add("TERM", "cygwin");
p = Process.Start(pinfo);
p.Start();
I see dumb people
|
|
|
|
|
Hi,
for my textboxes the following function works just fine when i set the keypreview of the form to true, and call this function in the keypressed event of the form:
public static void MoveNext(Form current_form, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
e.Handled = true;
current_form.SelectNextControl(current_form.ActiveControl,true,true,true,true);
}
}
As expected focus jumps to the next control.
But if the focus sits on a combobox, i just get a beep but it doesn't change focus. Now, if i put the code IN the KeyPressed event of the combo it does jump to the next control, but it still beeps.
Anyone have any ideas on how to solve this? The method of putting it insiode the keypressed event of the combo would be good enough for me atm, if it wasn't for that beep every time.
thanks,
Kristof
|
|
|
|
|
While I've been playing with the ComboBox (Inheriting from it) I've noticed that the "Key" Events do not work as you would expect them to for say a normal TextBox. It seems as if the Edit window of the Combo gets it's chance to process the Key event even before it gets passed to the Combo's Key Events.
For example, I am writing code for AutoComplete functionality. I wanted the control to only allow the user to type what was already in the List. However, when I tell it "e.Handled = True", it does absolutely nothing and still allows the user to type in the value. This is NOT what happens in a Textbox, the Textbox works as expected.
So...you probably aren't going to find a way to get rid of the Beep, but if you do, or you figure out my issue, Post it!
|
|
|
|
|
Had anyone have written a BHO in C#?
I need help in many ares.
If someone can point me a link to code or send me one I will be very thankful.
|
|
|
|
|
I am writing a little utility for Windows XP, and need to be able to use fast user switching. What function do I call? What library is it in? (I know this is a P/Invoke thing)
|
|
|
|
|
In C++, if you write the following:
printf("Number: 0x%04X", 1);
The output will be:
Number: 0x0001
As one can see, the number is prepended with a zeros. How do you achieve the same with C#?
|
|
|
|
|
|
|
Or in one step :-
inx x = 100;
System.Console.WriteLine("Number is 0x{0:X4}", x);
|
|
|
|
|
|
What/HOw would I use a HICON equivilant in .NET
1001111111011101111100111100101011110011110100101110010011010010 Sonork | 100.21142 | TheEclypse
|
|
|
|
|