|
Thanks for the help guys (and 4 not flaming )
I already knew about the resize and paint events and have handled them correctly (or at least i think i have)
what i specifically need help with is getting the shapes to appear with a button click (multiple shapes each on a separate button) and the resizing of the shape as the form is resized
just a note
in the resize event i have the code
this.refresh();
is that all that goes in that section or is that where i put my code to resize the shape as well?
thanks again
|
|
|
|
|
you should not need to specifically handle resizing the shape if every time it is drawn it uses the width and height of the form.
In paint event...
e.Graphics.DrawElipse(Pens.Red, 0, 0, this.Width, this.Height);
In resize event...
this.Invalidate();
Can you please explain in more details what your buttons are required to do?
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
ok, the buttons are meant to trigger the drawing of the object (shape)
I am using a static class to hold the code to draw the shape and then calling it to the form in the paint event to draw them (I think that's how to explain it)
so in the class i have
public static void Square(Graphics g)
{
g.DrawRectangle(Pens.Blue, 10, 10, this.width, this.height);
}
and in the form itself i have
Draw.Triangle(e.Graphics);
so when the button called circle is pressed it triggers the command that calls upon the class to draw a circle
with the this.height and this.width how to I tell the class the height and width of the form
I hope this clears everything up, if not let me know
|
|
|
|
|
Ok, i understand a little better now. Thou im not sure of your question. But i will try to explain how you should handle what you are trying to do...
You should use a class for each of your shapes (triangle, square, etc.) each of these classes should contain the properties for that shape such as location, size, colour etc. (perhaps you could use a 'shape' base class and derive your shapes from that). Each of these classes should contain a method for drawing that takes a Graphics parameter.
Then in your main class you have a collection of shapes, then in your paint event for you panel/form you simple loop the collection and call the draw method on each shape by passing the graphics instance from the paintEventArgs.
So Then all you need to do on button clicks is to create a shape, set the properties, add it to the collection, then call invalidate() for the panel/form.
Next, to accomplish the task of resizing the shapes. I assume it would be logical to resize all the shapes on the screen. So create a handler for the Resize event of the form. Then in here you can go through your collection of shapes and change the location/size as needed. You could also modify the shapes Draw method to take parameters for the width/height of the form and draw each time based on that. Then you just need to call Invalidate() in the resize event.
Hope this helps
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
The only thing i don't understand is that I thought it would be more appropriate to use a refresh event opposed to the invalidate event you suggested, is there a significant difference in the two events?
Ok what i have from the ground up is:
A class called shapes which contains all the code for drawing the shapes
public static void Square(Graphics g)
{
g.DrawSquare(Pens.Blue, 10, 10, this.width, this.height);
}
etc
and then in the form i have a resize event which contains the code to draw the shapes
private void DrawBoard_Paint(object sender, PaintEventArgs e)
{
Draw.Square(e.Graphics);
}
and for the resize event I have
private void DrawBoard_Resize(object sender, EventArgs e)
{
this.Refresh();
}
what i specifically need help with is (as said by someone else) to "call the function that you have written in the class." because it's multiple shapes being drawn and each being drawn on demand not when the app starts and I also need to pass the width and height parameter on the click event I would assume.
in a nutshell I don't know the code to cause the click event to call upon the function in the class that draws the shape as well as the code to pass the width and height to the class
Thanks in advance.
modified on Wednesday, April 29, 2009 7:13 AM
|
|
|
|
|
ok so if i got you correctly...
your square function needs to have additional params for the height and width values.
your button should also call this.Invalidate() which should result in the square being drawn
Johnny Jackson wrote: is there a significant difference in the two events?
Not entirely sure but i think Invalidate() redraws the control itself, and Refresh() redraws the control and all child controls within it.
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
hi,
I want to create a Excel file in server from my web application.Is it possible?can i use open office in C#?
Regards,
justindhas
|
|
|
|
|
Which do you want, Excel or OpenOffice Calc?
You decide, then perhaps someone can help.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
I am working on a Project (Kind of CMS). Here we want to upload the word document. And while uploading word document we need to convert them to HTML file. , need to fetch Images and stored them in local directory. Now we need to save the HTML (with Image link changes to the images saved in Local folder) in data base. In the same manner we do saving HTML while using any Rich editor.
We will be using Word 2007 documents only. Any help in this regard will be greatly appreciated.
|
|
|
|
|
I have an application with a function which needs to be run as administrator, but it needs to be the administrator of another account.
Maybe this is not clear at all, so i'll specify my question
user1 runs an application
user1 presses a button which results in running another application
this other application has a manifest file which says to the uac that it needs to be runned with elevated rights
But i don't want this second application to be run with elevated rights from user1, but from user2 (user2 is a domain administrator, user1 is not)
Over the shoulder credentials is turned of on every pc here, so there is no way the user1 can change to user2 (his domain administrator account).
I've been googling for a solution for this problem, but i cannot find anything useful. Is there anyone who can point me in the right direction. I only want vista to prompt me for giving a user and pasword for running this application as a domain admin..
Thanks in advance to anyone who can point me in the right direction
edit: should i have posted this under the vista forum
|
|
|
|
|
Yes, this is a question about Vista's UAC not the application itself
|
|
|
|
|
ok thanks, i reposted this question in the vista forum.
|
|
|
|
|
Hie developers and coders,
It will be good if i could get a source code of a player that plays files from a streaming server...something like what youtube but rather an application than an applet...i'm really stuck with using DirectShow and it's my first time...oh ya, it will be good if the player is purely directshow base in C#...as it's one of my school projects and i'm not allowed to use directx...
Thanks a million...
Han
|
|
|
|
|
Can i assign some string or integer to EventArgs?
For example, i wan assign value to the following:
EventArgs e = null;
Anyone can provide some examples?
Thanks!
|
|
|
|
|
Buy a basic book on OO and read it. Then move on to C#. Of course you can't assign a value of a different type to the type of the object. You CAN derive from EventArgs for your own events, and add properties, but you can't change the class for a framework event, or turn an EventArgs into a number or string.
Christian Graus
Driven to the arms of OSX by Vista.
"I am new to programming world. I have been learning c# for about past four weeks. I am quite acquainted with the fundamentals of c#. Now I have to work on a project which converts given flat files to XML using the XML serialization method" - SK64 ( but the forums have stuff like this posted every day )
|
|
|
|
|
shennwooi wrote: EventArgs e = null;
This appears to work. but why would you want to do that? what is your requirement?
shennwooi wrote: Can i assign some string or integer to EventArgs?
No. You cant do that. Again why would you want to?
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
musefan wrote: shennwooi wrote:
EventArgs e = null;
This appears to work.
Had you doubts about?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
yeah i wanted to double check it was nullable. Like i have said i dont see a use for it...
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
A object reference is, by definition, nullable.
musefan wrote: Like i have said i dont see a use for it...
I see.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
what would you use it for?
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Like for any other object reference: a null value simply states that the reference 'points' to no object.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
yes, im not doubting the use of it for other object types. but why would anyone need to assign null to EventArgs instance?
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Probably noone. Neverthless, the wise developer receiving a EventArgs reference (in the event handler), should consider the possibility of a null value.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
well EventArgs does not have any useful information so you wouldn't need to check if its null or not as you would never use the reference.
Unless of course you pass it another EventArgs derived object but then you will need a cast so you would validate it first then.
Life goes very fast. Tomorrow, today is already yesterday.
|
|
|
|
|
Sometimes, for example (admittedly a bad one) if you want to call a button click handler, you can use myButton_Click(this, null) , rather than myButton.PerformClick(). Although, as you have said, why would you want to?
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|