|
Yes!
It working! But the mous cursor moves to the upper-left corner when I drag it... hm... but thanks!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
This will work much better, hope this helps
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
{
this.Left = Cursor.Position.X - this.Left/2;
this.Top = Cursor.Position.Y - this.Top/2;
}
Nick Parker
|
|
|
|
|
Improving on Nicks suggestion....
private bool mouseDown = false;
private Point mouseDownLocation = Point.Empty;
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{
if( (e.Button & MouseButtons.Left) > 0 )
{
mouseDown = true;
mouseDownLocation = PointToClient(Cursor.Position);
}
}
protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e)
{
if( (e.Button & MouseButtons.Left) > 0 )
{
mouseDown = false;
mouseDownLocation = Point.Empty;
}
}
protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)
{
if( (mouseDown) )
{
Point currLocation = PointToClient(Cursor.Position);
Point offset = currLocation;
offset.Offset(-mouseDownLocation.X, -mouseDownLocation.Y);
Point newLocation = Location;
newLocation.Offset(offset.X, offset.Y);
Location = newLocation;
}
} Now the form moves with the cursor instead of the form's upper-left corner jumping to the cursors position
James
Simplicity Rules!
|
|
|
|
|
Nice idea James, the original post wasn't clear to me whether they wanted to allow the user to click to move the form or not. It's always fun to see different approach at accomplishing a task.
Nick Parker
|
|
|
|
|
Aaahh!! It works!!
And James: Tell me every book you've read about C#!!! NOW!!!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
Only a couple
Inside C# by Tom Archer and
C# Programming with the Public Beta from Wrox
James
Simplicity Rules!
|
|
|
|
|
okay, then it's only Inside C# I haven't read!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
i want to know whether a file has the attribute "readonly"
i get a "FileInfo" object. But i don't know how to deal with the "FileInfo.Attributes"
who can give me some example.
thanks
|
|
|
|
|
This example test if the file is readonly and if it is true it change it to normal attribute.
if( (File.GetAttributes(filename) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly )
File.SetAttributes( filename , FileAttributes.Normal );
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Your answer was a little bit more right than mine I can see now!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
i have test your code.
the compiler show error:operator & can't work
between “System.IO.FileAttributes”and “bool” type.
|
|
|
|
|
Try this:
(file is a FileInfo object)
if(file.Attributes == FileAttributes.ReadOnly)
{
}
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
Have you test this one Rickard?
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
As I said to you in my reply... your answer is the right one!
And no, I have not try that... I just thought that would be how you found out if it was read only or not!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
your code can pass the compiler.
but if the file have another attribute besides "readonly",your code can't work right.
|
|
|
|
|
i had a similar problem, i need to check if a file is a Directory, but ignore directory’s with System and/or Hidden attributes.
Thought my solution might be of some use if you need an example of how to check for more than one attribute. Also as i only started using C# 2 days ago maybe some expert can tell me if my solution is the best for what I’m trying to do, or if there is simpler method.
FileAttributes att = fsi[i].Attributes; //fsi = array of FileSystemInfo
bool bDirectory = (!((att & FileAttributes.Hidden) !=0) && // dont want hidden folders
((att & FileAttributes.Directory) !=0) &&
!((att & FileAttributes.System)!=0)); // dont want system folders
if(bDirectory)
//do something with fsi[i] - a directory
|
|
|
|
|
How can I globally share variables across forms?
i.e. - form2 sets a variable that form1 can use and vice versa
Thanks
Nick Parker
|
|
|
|
|
With a property can you do that.
I have done that!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C# and C++!
|
|
|
|
|
A good method is using a singleton class that is loaded on demand.
MyAppSettings - a class that is the equivalent of a global variable:
public class MyAppSettings {
// make private since class should not be intatiated directly
private MyAppSettings() {
// ...
}
// this one property
public string Setting1 {
get {
// read the data from a database or from a file
}
set {
// save the data to a database or file
}
}
private static MyAppSettings _settings = null;
public static MyAppSettings Instance {
get {
if (_settings == null)
_settings = new MyAppSettings();
return _settings;
}
}
}
Not only does this class define global variables, but it insures that only one instance of the data is floating around.
To access you global data:
MyAppSettings.Intance.Setting1 = "xyz";
hope this helps
|
|
|
|
|
Is there a way I can use an object without knowing which object it realy is? for exemple: I have several objects that implement IEnumerable(these objects has arrayList), I need to Implement IEnumerator and I want to do it once. but I don't know for which object I implement it for so when I do : object.arrayList[i] -its an error.
(object doen't have an arrayList property). how can I do it???
thanks in advance , sharon
|
|
|
|
|
Ahhh, the beauty of programming via interfaces [contractual I think is the term]
IEnumerable ie = myobject as IEnumerable
if( ie != null )
{
IEnumerator = ie.GetEnumerator();
...
} HTH,
James
Simplicity Rules!
|
|
|
|
|
I need to know how to call the following win32 api from c#
<br />
BOOL SystemParametersInfo(<br />
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);<br />
I tried with the following PInvoke syntax
<br />
[DllImport("user32.dll")]<br />
public static extern bool SystemParametersInfo(int uiAction,<br />
int uiParam,object pvParam,int fWinIni);<br />
Is substituting object for pvoid okay, where can I find more Info. on this (how do i do substituiton) other than msdn.
Now I need to pass on the address of a Rect to the above function...
the exact win32 api call looks like this...
<br />
::SystemParametersInfo(SPI_GETWORKAREA, 0, &rectSomething, 0);<br />
How do i do this in C#.
Thanks
Kannan
|
|
|
|
|
Kannan Kalyanaraman wrote:
Is substituting object for pvoid okay
No! Use IntPtr instead.
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Does anybody know how can I find out which window has the focus from my program?
Thanks
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
Does anybody know how can I find out which window has the focus from my program?
You'll have to invoke the API I guess
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|