|
Thanks for helping me.
C#
|
|
|
|
|
Hello Stefan,
Stefan Troschtz wrote: button1.ContextMenu.Show(button1, Cursor.Current.Position);
I assume that this was out of your head without testing and in big hurry.
Because it's not compiling (at least not in framework1.1).
I think what you meant was:
button1.ContextMenu.Show(button1, Cursor.Position);
But this is also not the right solution because the position of the contextmenu is relative to the button location. So you would have an offset depending on the position of the form.
I think only the eventarg members X and Y are giving the right location, without an additional calculation of offsets.
All the best,
Martin
|
|
|
|
|
Martin# wrote: I assume that this was out of your head without testing
Almost true. Did not test, but got it from the docs whereby I oversaw that Position is a static property too.
Martin# wrote: But this is also not the right solution because the position of the contextmenu is relative to the button location. So you would have an offset depending on the position of the form.
In fact, the Position property returns screen coordinates so unless the button is in the upper left region of the screen one probably cannot see the context menu. I must admit I didn't thoroughly read the documentation of the ContextMenu.Show method, so I missed that the point you're passing in has to be relativ to the location of the passed in control.
Martin# wrote: I think only the eventarg members X and Y are giving the right location, without an additional calculation of offsets.
You're right. Using Cursor.Point would require an additional call to the Control.PointToClient method.
Overall, a quite lousy post of mine Thanks for the addition.
Regards, Stefan
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Stefan Troschtz wrote: Overall, a quite lousy post of mine
Don't be so hard with yourselve.
All the best und noch einen schönen Tag!
Martin
|
|
|
|
|
Can anyone help me to create Gantt chart using C#. The Gantt chart need to be dynamic which mean the chart can be drag and drop.
|
|
|
|
|
What you request is to complex to be answered in a forum post. You need to break your problem down in to managable components first.
|
|
|
|
|
The gantt chart will generate bar and the bar can be move by mouse click to drag anywhere in the chart
|
|
|
|
|
You really need to break it down further than that. Break it down in to smaller and smaller steps until you almost have the code you need to get this to work.
|
|
|
|
|
Hello,
i created a test app in C#. i want to allow the user get his previous settings every time he run the program.(for example: if a user choose a number of keys for the test app as 32 keys. i want the user to see 32 keys already chosen for him the next time he run the program)
|
|
|
|
|
You can use configuration file (app.config). On this site are some nice articles about using System.Configuration namespace, search for them.
Easiest way would be to store settings as key-value collection in AppSettings, e.g
<AppSettings>
&add name="keys" value="32" />
</AppSettings<
Again, there is lot of examples out there.
errr, this is of course way in single-user environment, if you need to keep different settings for different users maybe try to keep config files in documents I know there is some app data folder (or similar) used for this very purpose.
"Throughout human history, we have been dependent on machines to survive. Fate, it seems, is not without a sense of irony. " - Morpheus
|
|
|
|
|
You have lots of options but simply you can write data to text or INI or XML files..
Save data while closing:
<br />
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)<br />
{<br />
WriteToFile(stringToWrite);<br />
}<br />
Read and apply settings on form load:
<br />
private void Form1_Load(object sender, System.EventArgs e)<br />
{<br />
ReadFromFile();<br />
ApplySettings();<br />
}<br />
Radgar
"Imagination is more important than knowledge." - Albert Einstein
|
|
|
|
|
Thank you guys for your input
|
|
|
|
|
I wrote an app using some active-x com dlls in C#.NET
The app works fine on my computer where I wrote it
but when I install it on an other computer I recieve the following error:
<br />
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in TestApp.exe<br />
<br />
Additional information: Retrieving the COM class factory for component with CLSID {8B71E7FF-699F-4610-9379-DE3A92D519BD} failed due to the following error: 80040154.<br />
I've included all the dlls I use but still receive this error on the other machine. Do you have an idea why?
regards
Radgar
"Imagination is more important than knowledge." - Albert Einstein
|
|
|
|
|
My guess would be even through the dll's are on the PC they haven't been registered. I think you need to run the regsvr32.exe on those dlls. That's my best guess.
Hope that helps.
Ben
|
|
|
|
|
Thanks Ben but that's definitely not the problem.
Radgar
"Imagination is more important than knowledge." - Albert Einstein
|
|
|
|
|
Well, that's what error 80040154 says is the problem. It basically means "Class not found", whether that's in reference to a direct call by your code, or one of your .DLL's has a dependancy on another DLL that's not registered properly. It's possible that the COM Servers you registered have to be restarted.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
I am using DrawBezier to display a user defined bezier curve. I need the x,y values along the curve (not just points used to create the curve but each point along the curve). I have the mathematical formula but if the graphics is generating the points to paint is there a way to access the x,y locations of points it is painting? Thanks
|
|
|
|
|
Why don't you make your own method for that. May be the following code might help. If my memory serves me correctly, I've copied this code from a book by Charles Petzold on Windows forms programming.
<br />
<br />
public void DrawBezier(Graphics grfx, Pen pen, Point p0, Point p1, Point p2, Point p3)<br />
{<br />
Point[] curve = new Point[100];<br />
<br />
for (int i = 0; i < curve.Length; i++)<br />
{<br />
float u = (float) i / (curve.Length - 1);<br />
<br />
float y=((1-u)*(1-u)*(1-u)* p0.Y) + <br />
(3*u* (1-u)*(1-u)* p1.Y) + <br />
(3*u*u* (1-u)* p2.Y) + <br />
(u*u*u* p3.Y); <br />
<br />
float x=((1-u)*(1-u)*(1-u)* p0.X) + <br />
(3*u* (1-u)*(1-u)* p1.X) + <br />
(3*u*u* (1-u)* p2.X) + <br />
(u*u*u * p3.X);<br />
<br />
<br />
curve[i] = new Point((int) Math.Round(x), (int) Math.Round(y));<br />
}<br />
grfx.DrawLines(pen, curve);<br />
<br />
}<br />
|
|
|
|
|
My question is pretty easy, but i couldn't find any solution. how can i press a key\mouse button? as in...when my program runs it'll type "hello"..or click the left mouse button...any ideas?
|
|
|
|
|
Hello,
sharpiesharpie wrote: My question is pretty easy,
I would like to help, but I don't understand the question.
Maybe if you don't use ".." and finish the sentence I (or somebody else) can help.
All the best,
Martin
|
|
|
|
|
just press a key, make the program click the mouse, press a key etc.
|
|
|
|
|
Hello,
Again I'm not sure if I understand your question correct.
But I'm trying to answer.
If it's limited to a special control, you could use the KeyPress event of that control like:
if (e.KeyChar == yourcharacter)
{
//If you whant to click a button, you could use the PerformClick method.
yourbutton.PerformClick();
}
Hope it helps!
All the best,
Martin
|
|
|
|
|
:\
i don't mean clicking a button in my form...i mean clicking the mouse\keys...the physical ones...like the auto clickers for games like MUOnline, or VistaTask...just click a keyboard key\mouse.
|
|
|
|
|
SendKeys.Send()?
You want to click the physical keys though? Maybe make something out of lego?
Russell
|
|
|
|
|
err...what's SendKeys? and no..not lego >_>
and what about clicking the mouse?
|
|
|
|