|
Like this:
String ml = @"I love
.NET.";
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
I creatd a custom control and I'm having re-painting problems. When another window is moved in front of the control and screws it up, it doesn't repaint. Do I need to set any style for the control to make sure it repaints when needed.
|
|
|
|
|
You are repainting in the OnPaint method, right? There's no such thing as AutoRedraw in C# unless you make there be one.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
I fixed it already. Thanks for the help.
All i did was set up wndproc and on WM_PAINT tell the control to paint
|
|
|
|
|
Is that a better solution than invalidating that portion of the parent control (and the parent's child controls) in that region?
|
|
|
|
|
Arun Bhalla wrote:
Is that a better solution than invalidating that portion of the parent control (and the parent's child controls) in that region?
Well, overriding the WinProc allows you to catch specific messages, allowing you to customize the way the application works, in this case, when repainting is done.
-Nick Parker
|
|
|
|
|
i posted a reply and it dissappeared
anyway , invalidating a control should do the job, eg:
button1.Invalidate();
|
|
|
|
|
I have 2 forms. ( Form1 & Form2 )
Form 1 has a datagrid and an advanced search button which shows Form 2.
When the information in form 2 is submitted, I want it to hide and populate the datagrid of form 1.
The problem is that I can not seem to access any variables or functions of form 1 from form 2.
am i on the right track with the code below?
<form1>
<br />
private void button1_Click(object sender, System.EventArgs e)<br />
{<br />
Form Form2 = new Form2();<br />
Form2.Show();<br />
}
<form2>
<br />
private void btnFindContact_Click(object sender, System.EventArgs e)<br />
{<br />
Form1.dataGrid1.SetDataBinding(ds,"Contacts");<br />
this.Hide();<br />
}
|
|
|
|
|
It is always a question of level of accessibility. When trying to access variables or methods of a second form on a first form you have two options:
1. Change the accessors of the variables assigned to the controls in questions (in most cases I would not recommend that).
2. Use properties to indirectly access variables assigned to the controls (recommended in most cases).
|
|
|
|
|
sorry i don't completely understand your answers, but i'm trying.
#1: i think i have tried this by changing from private to public, and then trying to access the variable from form 1 with: Form2.TextBox1.Text .. however i get compilation errors that it does not recognize TextBox1
#2: could you go into a little more detail? or if you know a good link, send me there?
i've been working at this for the last 2 days and can't seem to come up with anything except for working with a dialog box.
|
|
|
|
|
It would depend on the access you have on the grid variable in Form one plus your form2 would have to have knowledge of your form1 structure which is calling it.
You have two ways:
1) Add a Property and a variable to your Form2 of a DataGrid.
private DataGrid parentDataGrid = null
public DataGrid ParentDataGrid
{
get { return parentDataGrid; }
set { parentDataGrid = value; }
}
In your Form1 when you call the Form2:
private void button1_Click(object sender, System.EventArgs e)
{
Form2 form2 = new Form2();
form2.ParentDataGrid = dataGrid1;
form2.Show(); (or .ShowDialog)
}
In Form two you simply:
if(ParentDataGrid!=null)
{
ParentDataGrid.SetDataBinding(ds,"Contacts");
this.Hide();
}
2) In form2 do:
Form1 form1 = ParentForm as Form1;
form1.datagrid1.DataBinding(ds,"Contacts");
this.Hide();
And make sure in Form1 you either change the private or protected access to the datagrid1 to public or make it a property of the datagrid1 in form1 as we did above and call that property in Form2.
Rocky Moore <><
|
|
|
|
|
I thank you very much! You have been a tremendous help to my 2 day saga.
I understand much better now.
Thanks!
|
|
|
|
|
hi,
i want to create hotkey in my app.
but where should i put the code that capture the KeyPress
from anywhere in my app.
i tried the main form KeyPress event but it doesn't respond when the focus is set to a control in the form.
what can i do?
thanx.
-- Directly From Zion --
------ Haimon15 ------
|
|
|
|
|
I have a class created with IBindingList called customerList and and a class called customer that implements the IEditableObject class
How do I know in the datagrid when a new row is being selected.
I have textboxes showing more data and need to update them when a row changes.
nick
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
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.
|
|
|
|