|
OpenCASCADE. It's all in C++ but there are a few wrappers for C# floating about. Alternatively, you can purchase Eyeshot which looks pretty impressive. Hope this helps.
|
|
|
|
|
hi all,
I have a custom user control which will draw a grid as a background by using
Bitmap bit = new Bitmap(Width, Height, e.Graphics);<br />
Graphics gpb = Graphics.FromImage(bit);
and i have been override OnPaintBackground(PaintEventArgs e) to prevent paint background frequently.
My question is how to make a Drawline object like normally AutoCAD do .Example,user can select Drawline button and start to draw a line on the grid and allow to draw as many they want.(if possible,i would like to know the logic or concept behind).The purpose i separate the Drawline object with the background is to allow user to move or delete the certain line using mouse.
Any ideas ,tips or suggestion are welcome
note:i have an example of drawtools but i am confusing on it(it may too complicated to me )
http://www.codeproject.com/KB/graphics/drawtools.aspx[^]
http://www.codeproject.com/KB/graphics/OpenS-CAD.aspx[^]
Thanks in advance
cocoonwls
modified on Wednesday, July 2, 2008 3:50 AM
|
|
|
|
|
i sugest you make a double buffered panel fisrt, so that image doesnt flicker...
to create the doubleBufferPanel add this class to a .cs file in your project
namespace DoubleBufferPanelNameSpace
{
class DoubleBufferPanel : Panel
{
public DoubleBufferPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint |
ControlStyles.DoubleBuffer |
ControlStyles.ResizeRedraw,
true);
this.UpdateStyles();
}
}
}
i had some issues with the designer generated code, that's why it has its own namespace.
compile the project, you'll see the double buffer panel show up in the toolBox. this is the object youll draw on.
youll be interected in the Panel_MouseClick event for its Args object which will give you the X Y coordinates of the mouse pointer which can be saved as a Point object for use in the Panel_Paint event.
hope this helps
good luck
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
Hi,
yes,i got your idea.But according to your suggestion,how can i put the onpaint method into each line object?Because i don't want all the line object repaint everytime when one of them changed(change location or line width). And the below description i was found is describe what i actually want..
store drawable objects in an array. Each drawable object knows how to draw itself.
On repaint, just iterate over the array of drawable objects.
So for a line, create a Line class that implements IDrawable.
Store the state of the line in the line object so that the line knows where it goes and
what it looks like. The OS clips the drawing to the dirty drawing rect so that
only the dirty portion of the screen is redrawn.
If you call invalidate the entire screen will be redrawn.
thanks in advance
regards
cocoonwls
|
|
|
|
|
ok, heres what im thinking...
youll have to create a class named line and you have to inherit it from IDrawable...
now what is a line? i line is two points and a point is two X Y coordinates, so your line object will have two Point objects with properties. In the constructor for the line object we will pass two points, for the lines starting position.
im not sure about the "Each drawable object knows how to draw itself" part but im thinking inheriting from the IDrawable interface gives you that functionality... so go google that interface
heres the basic idea for your line object...
class Line : IDrawable
{
public Line(Point startingPoint1, Point startingPoint2)
{
p1 = startingPoint1;
p2 = startingPoint2;
}
private Point p1;
public Point P1
{
get
{
return p1;
}
set
{
p1 = value;
}
}
private Point p2;
public Point P2
{
get
{
return p2;
}
set
{
p2 = value;
}
}
}
now in your main program you can create instances of these line objects and put them in a line array
hope this helps
good luck
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
Hi,
I am using c# and SAPI 5.1. Is it possible to use MS SAPI 5.1 for different languages like french, spanish.,
How to use the SAPI 5.1 to use multiple languages?
Thank you
Thanks & Regards,
Venkat
|
|
|
|
|
hi,
i am using windows application and my code behind is c#.....
i ma new to crystal report...
i have created crystal report ...... now i need to create dynamic font size tell me how to create it.....
regard's
vidhya.s
|
|
|
|
|
Try google?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
i have tried but its like creating crystal report with dataset...
so i didnt get any artical related to my task...
thats y i am asking in ur forum..
|
|
|
|
|
|
Try this :
Bitmap bitmap = (Bitmap)Bitmap.FromFile(@"D:\colors.jpg");
bitmap.SetPixel(10, 10, Color.Yellow);
pictureBox1.Image = bitmap;
|
|
|
|
|
please help make barcode reader using c# languege
|
|
|
|
|
There's hundreds of examples starting right here on cp and on google. Good luck.
|
|
|
|
|
most barcode scanners i have used emulate keyboard input...
|
|
|
|
|
Hi,
Please refer to the below mentioned articles:
http://www.codeproject.com/KB/graphics/barcodeimaging2.aspx
Hope this helps.
Vinay
ComponentOne LLC.
www.componentone.com
|
|
|
|
|
I've uploaded my program through box.net, and i've sent it to two people, and they both say that it says "an error occured, and the program needs to close".
i've been giving it to them through this link: here.
is it working for you guys? i've told them to download this too, but they're still saying it's not working... what could be going on?
|
|
|
|
|
I assume they don't have the .NET framework installed.
Christian Graus
Please read this if you don't understand the answer I've given you. If you're still stuck, ask me for more information.
|
|
|
|
|
does it work on yours? and i've included in my question that i asked them to install the framework, and it gives the same message
I wish I could drive...
|
|
|
|
|
I didn't see a link, nor am I going to download and run a random program from the internet. Add some error logging code, and include a log at the top level, so that if no log is written, the program has not run at all ( so, no .NET, or wrong version of .NET )
Christian Graus
Please read this if you don't understand the answer I've given you. If you're still stuck, ask me for more information.
|
|
|
|
|
sorry, somehow the post sent before i added the link. i went back and added it. thanks for the logging tip, i'll try that. but man... i don't remember the people on these forms being so rude
I wish I could drive...
|
|
|
|
|
I'm not being rude, I'm being practical. I'm sure your code is not malicious, but it's not smart of me to bank on it. I am still trying to help you.
Christian Graus
Please read this if you don't understand the answer I've given you. If you're still stuck, ask me for more information.
|
|
|
|
|
i know, it just came off to me that way when i first read it. thanks for the help!
|
|
|
|
|
I'm coming from the VFP environment and I'm learning C# on the fly. In FoxPro we have a property setting on text and combo boxes that allow for 'SELECT UPON ENTRY' which causes the object's foreground and background colors to change when the object receives focus. Also, when the user presses any key other than a tab or enter key the object is cleared and it receives the first keystroke and they can continue to fill in the text portion of the object. If they press tab, enter, or complete the maximum number of chars for the field the object loses focus and the color reverts back to what it was before it got focus.
How can I do this in C#?
Many thanks!
Jim White
|
|
|
|
|
The events Enter and Leave are for when the control gains/loses focus. So using those you could change the colours of your boxes.
You can use the event KeyDown to see what key the user has pressed before it's actuall passed to the text box so you can hadle your tab/enter keys there.
As for clearing the contents on the first key press, you'll just have to use a bool to check if its the first key press or not.
bool first = false;
OnEnter()
{
first = true;
}
.
OnLeave()
{
}
.
KeyDown(KeyEventArgs e)
{
if(key is tab OR key is enter) {
e.Handled = true;
MyForm.Focus();
}
.
if(first)
.
first = false;
}
My current favourite word is: I'm starting to run out of fav. words!
-SK Genius
Game Programming articles start - here[ ^]-
|
|
|
|
|
Is SuppressKeyPress property available in c# ?
i want to prevent user from entering any digits into a text field (anything other than digits are allowed)
so i gave the following code
void form1_KeyPress(object sender, KeyPressEventArgs e)
{
.
if (char.IsDigit(e.KeyChar ))
{
--i want to prevent user from entering any digit--
}
}
in VB there is a propery called SuppressKeyPress in KeyEventArgs. but its not there in C# . is there any other equivalent for SuppressKeyPress in C# ?
|
|
|
|