|
Hi.
I have an app that reads the DB, and then populates a panel in my program with a bunch of labels. The user is able to drag those labels anywhere on the panel (basically drag and drop, using MouseDown, MouseMove, MouseUp). Some of those labels have "links" between them which I'd like to represent with lines, connecting one label to another. I'd also like the lines to be redrawn to the new label location once a label is moved by a user. What is the easiest way to do this?
I tried maintaining a list of labels and their links, and updating the link, then just redrawing lines. However, in my MouseUp function, where the links are updated (mouse up means the user "dropped" the label and so it has a new location), the x,y coords of e are always zero:
[pre]
private void my_lbl_MouseUp(object sender, MouseEventArgs e)
{
drag = false;
Point temp;
for (int i = 0; i < Links.Count; i++ )
{
if (Links[i].p1 == old_point1 || Links[i].p1 == old_point2)
{
Links[i].p1.X += e.X;
Links[i].p1.Y += e.Y;
}
if (Links[i].p2 == old_point1 || Links[i].p2 == old_point2)
{
Links[i].p2.X += e.X;
Links[i].p2.Y += e.Y;
}
}
}
[/pre]
Can anyone tell me why e.X and e.Y are always zero when a user moves the labels? Or an easier way to do what I've described above?
Any help or advice is appreciated.
|
|
|
|
|
oops, sorry:
private void my_lbl_MouseUp(object sender, MouseEventArgs e)
{
drag = false;
Point temp;
for (int i = 0; i < Links.Count; i++)
{
if (Links[i].p1 == old_point1 || Links[i].p1 == old_point2)
{
Links[i].p1.X += e.X;
Links[i].p1.Y += e.Y;
}
if (Links[i].p2 == old_point1 || Links[i].p2 == old_point2)
{
Links[i].p2.X += e.X;
Links[i].p2.Y += e.Y;
}
}
}
|
|
|
|
|
I don't know why the arguments in the event args would be broken, but what if you just store the current position in the mouse move ?
In any case, if I am dragging something, I'd expect to update the position in the mouse move event, so I can call invalidate and have the object drawn as it's being moved.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Thank you!
I don't know why it doesn't work in MouseUp, but having it redraw during movement (in MouseMove) works. Well, kinda, but I have the main problem solved.
Thanks again for your help!
|
|
|
|
|
I have done some r&d but i didn't get the best solution. Actually my prob is if i'll try to upload more than 50 MB file, it shows error msg "IE cannot display this page". actually im doing it through HTTP when i use FTP it works fine ..............nything which will work will help a lot to me ....coz it is very urgent ..............waiting 4 responses????????
|
|
|
|
|
I'm not sure about this one but I think there is a setting in webconfig that limits uploaded file size to 10 MB default. I think you need to change that setting to fit your needs.
hope that helps
zilo
|
|
|
|
|
I entirely agree with you.
web.config
<httpruntime maxrequestlength="10240" usefullyqualifiedredirecturl="true" />
|
|
|
|
|
Experts say, program to an interface not to the concreate classes. But does it mean for every single class we build an interface.
|
|
|
|
|
No, that breaks the whole point. The point would be that if you have behaviour that is common between several classes, you create an interface that defines it, so for example if you have 5 classes that know how to validate themselves, you create an IValidate interface, so you can validate all objects via a common interface.
Creating an interface that defines a single class, and doing that for each class, achieves exactly nothing. Factor out the parts of what a class does, where other classes will do the same thing.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
i am a new to C3 and while i am filling a combobox i have this error:
cannot bind to the new display member
so please can u tell me how can i solve this problem?
|
|
|
|
|
You're going to have to show the code that caused it and on what line the exception was thrown. From the error message, it sounds like you're trying to set the ComboBox.DisplayMember property to a column in a DataTable that doesn't exist.
|
|
|
|
|
actually i wanted to fill the combobox from a table in the data base , the code is :
private void fill_locations() {
string st = combo_origion.Text;
SqlDataAdapter dtp = new SqlDataAdapter("get_locations", conn);
dtp.SelectCommand.CommandType = CommandType.StoredProcedure;
dtp.SelectCommand.Parameters.Add("@type_text", SqlDbType.NVarChar).Value =combo_origion.SelectedValue.ToString();
DataSet chds = new DataSet();
dtp.Fill(chds);
combo_locations.DataSource = chds;
combo_locations.DisplayMember = "location";
combo_locations.ValueMember = "location_id";
}
the error is at the last line.
|
|
|
|
|
The error says that the column "location_id" doesn't exist in the returned data table.
Perhaps the actual column name is "location id"?? That should be specified in your code as "[location id]".
|
|
|
|
|
in this line
combo_locations.DataSource = chds;
replace with
combo_locations.DataSource = chds.table[0];
try it
|
|
|
|
|
I have HTML tutorial site http://frogleg.mvps.org/helptechnologies/htmlhelp/hhtutorials.html[^]
Now I need a site(book) to help me use the compiled HTML code more effectively in my application. I would like a detailed book or website that addresses how to best use the helpprovider object to allow scalability and easy of use.
Any input to help would be appreciated.
Thanks
Programmer
Glenn Earl Graham
Austin, TX
|
|
|
|
|
Hi all,
How can i pass a Arraylist from one form to other?
thanx.
|
|
|
|
|
Colin Mackay has an article on this site about passing values from one form to another. You can do the same concepts he points out, with Arraylist.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
What is it with people passing objects from one form to another? Why not take a look at using design patterns such as MVC instead? That way, you'll only have one model, but you'll have multiple views on the model.
|
|
|
|
|
Pete O'Hanlon wrote: Why not take a look at using design patterns
I agree. It gets kind of old with these passing-something-from-one-form-to-another-type questions. There really isn't much too it.
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
It really does. I guess it's what separates the professionals from the drag and drop, girly wirly, namby pamby, wishy washy, can't code for crap types.
|
|
|
|
|
Pete O'Hanlon wrote: I guess it's what separates the professionals from the drag and drop, girly wirly, namby pamby, wishy washy, can't code for crap types.
Congrats! That is the first new sig for 2008 I'll add to my collection
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Thanks. I'm glad to be off assistance.
|
|
|
|
|
Hi all,
this question might not fall into the C# category, and actually I'm not sure at all what category would fit better. But here it goes:
I have a web application that displays a list of binary files which are stored in a database, and allows the user to view these files. Most of these files are images, and are viewed in a separate browser window. But some of them will be Office documents and perhaps other types (.pdf etc.).
When the binary files are images, they will be displayed in this new browser window with no difficulty. If the file is of some other type, then sometimes the document can be opened as an embedded file, but sometimes it cannot (Firefox for instance doesn't seem to allow embedded documents, such as Office documents, and .msg files are never displayed inline in the browser). So if the file is, say, an .msg Outlook mail file, the browser will ask the user if it wants to save the file to disk or if the user wants to open the file.
And here is my problem: under some circumstances (which I haven't been able to identify fully, but seems to happen all the time at my client site), when the user chooses to "Open" the file, he will receive an error from the application which is supposed to take care of opening the file. This error message says something along the lines of "Cannot open the file <path to="" a="" file="" in="" the="" users="" temp="" folder="">, the file may not exist, or you may not have the required permission etc. etc." (note this is not the actual error message, since the client isn't using English versions of Windows/Office). But if the users would choose to Save the file - and *then* to open it, then everything works according to plan.
So are there any thought/ideas/suggestions? Somehow I cannot see where the problem lies, since my web application is simply delivering binary data (using Response.BinaryWrite in ASP.NET - C#), and this binary data *is* properly downloaded (otherwise the user wouldn't be able to save the file), but for some reason he gets this error message.
Any help whatsoever would be highly appreciated!
Best regards,
Daniel
|
|
|
|
|
It still boils down to if the browser can support the file, though you are simply delivering binary data.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
Hi,
C#, VS2005
Is there a simple way to ftp a folder including all sub folders and files to a remote ftp site?
Thanks in advance
Chas
|
|
|
|