473,811 Members | 3,026 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

RectangleToScre en question.

Okay, this method seems simple, but it eludes nonetheless.

I have a control that is nested in other controls. Essentially the control
is nested several contains from the main form. All I want is to determine
the screen coordinates of the control, but if I call RectangleToScre en on
either the Form or the parent container results in incorrect bound when
passed the bounds of the control.

How might I determine the screen coordinates of the control when it is
inside other containers?
Nov 17 '05 #1
5 4977
Peter,

What's wrong with this?...

Cursor.Position .X
Cursor.Position .Y

Best Regards
Johann Blake

Nov 17 '05 #2
Peter Rilling wrote:
Okay, this method seems simple, but it eludes nonetheless.

I have a control that is nested in other controls. Essentially the control
is nested several contains from the main form. All I want is to determine
the screen coordinates of the control, but if I call RectangleToScre en on
either the Form or the parent container results in incorrect bound when
passed the bounds of the control.

How might I determine the screen coordinates of the control when it is
inside other containers?


You don't mention what the nature of the incorrect result is. Generally
you are doing this correctly: in a simple case, say you have a form and
a button, say at (100, 100) on the form. Now if you pass in a rect like
this to the form's RectangleToScre en method: (x: 100, y: 100, w: 75, h:
23), you should get the screen rectangle of the button in return. Works
for me :-) What are you doing (or seeing) differently?

For purposes of comparison: you should also get to the same top left
coordinate of the inner element by calling PointToScreen(n ew Point(0,
0)) on the element itself.

Oliver Sturm
--
omnibus ex nihilo ducendis sufficit unum
Spaces inserted to prevent google email destruction:
MSN oliver @ sturmnet.org Jabber sturm @ amessage.de
ICQ 27142619 http://www.sturmnet.org/blog
Nov 17 '05 #3
Not sure what the cursor has to do with translating the control's local
coordinates to screen coordinates.

"Johann Blake" <jo*********@ya hoo.com> wrote in message
news:11******** *************@g 47g2000cwa.goog legroups.com...
Peter,

What's wrong with this?...

Cursor.Position .X
Cursor.Position .Y

Best Regards
Johann Blake

Nov 17 '05 #4
Let's see if I can explain. I am probably not using the method correctly.

Suppose I have the following controls layered such that each is a child of
the outer control. The coordinates in parenthesis is the top-left of the
control within the parent container. So panel2 should be about 30 px from
the edge of the screen (give or take some point for the form edge).

form1 (0, 0)
panel1 (10, 10)
panel2 (20, 20)
panel3 (30, 30)
button1 (40, 40)

What I would want to do is to get the screen position of button1. That
would be about 40+30+20+10 = 100 px, right (again, give or take).

For me to get this value, what is the proper way of using RectangleToScre en?
Would I go form1.Rectangle ToScreen(button 1.Bounds) or
panel3.Rectangl eToScreen(butto n1.bounds) or something else? When I
calculate the value, it always is less then what is should be, almost like
it is not taking into account the ancestor containers.

"Oliver Sturm" <ol****@sturmne t.org> wrote in message
news:#W******** ******@TK2MSFTN GP15.phx.gbl...
Peter Rilling wrote:
Okay, this method seems simple, but it eludes nonetheless.

I have a control that is nested in other controls. Essentially the control is nested several contains from the main form. All I want is to determine the screen coordinates of the control, but if I call RectangleToScre en on either the Form or the parent container results in incorrect bound when
passed the bounds of the control.

How might I determine the screen coordinates of the control when it is
inside other containers?


You don't mention what the nature of the incorrect result is. Generally
you are doing this correctly: in a simple case, say you have a form and
a button, say at (100, 100) on the form. Now if you pass in a rect like
this to the form's RectangleToScre en method: (x: 100, y: 100, w: 75, h:
23), you should get the screen rectangle of the button in return. Works
for me :-) What are you doing (or seeing) differently?

For purposes of comparison: you should also get to the same top left
coordinate of the inner element by calling PointToScreen(n ew Point(0,
0)) on the element itself.

Oliver Sturm
--
omnibus ex nihilo ducendis sufficit unum
Spaces inserted to prevent google email destruction:
MSN oliver @ sturmnet.org Jabber sturm @ amessage.de
ICQ 27142619 http://www.sturmnet.org/blog

Nov 17 '05 #5
Peter Rilling wrote:
Let's see if I can explain. I am probably not using the method correctly.

Suppose I have the following controls layered such that each is a child of
the outer control. The coordinates in parenthesis is the top-left of the
control within the parent container. So panel2 should be about 30 px from
the edge of the screen (give or take some point for the form edge).

form1 (0, 0)
panel1 (10, 10)
panel2 (20, 20)
panel3 (30, 30)
button1 (40, 40)

What I would want to do is to get the screen position of button1. That
would be about 40+30+20+10 = 100 px, right (again, give or take).
No. The screen position is the position on screen, as the name tries to
indicate :-) Your calculation is only correct if your form is actually
at a (0, 0) screen coordinate. But maybe you meant it that way?
For me to get this value, what is the proper way of using RectangleToScre en?
Would I go form1.Rectangle ToScreen(button 1.Bounds) or
panel3.Rectangl eToScreen(butto n1.bounds) or something else? When I
calculate the value, it always is less then what is should be, almost like
it is not taking into account the ancestor containers.


Okay, it should work by calling
panel3.Rectangl eToScreen(butto n1.Bounds). Or more generically,
button1.Parent. RectangleToScre en(button1.Boun ds). If you have a complex
hierarchy of controls, it might be a good idea to just use the control
itself: button1.Rectang leToScreen(new Point(0, 0), button1.Size) should
give the same result. I tried these in a test program right now and they
worked fine for me.
Oliver Sturm
--
omnibus ex nihilo ducendis sufficit unum
Spaces inserted to prevent google email destruction:
MSN oliver @ sturmnet.org Jabber sturm @ amessage.de
ICQ 27142619 http://www.sturmnet.org/blog
Nov 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
5045
by: Stevey | last post by:
I have the following XML file... <?xml version="1.0"?> <animals> <animal> <name>Tiger</name> <questions> <question index="0">true</question> <question index="1">true</question> </questions>
7
2668
by: nospam | last post by:
Ok, 3rd or is it the 4th time I have asked this question on Partial Types, so, since it seems to me that Partial Types is still in the design or development stages at Microsoft, I am going to ask it differently. FOUR QUESTIONS: The background: I got three (3) files
3
3096
by: Ekqvist Marko | last post by:
Hi, I have one Access database table including questions and answers. Now I need to give answer id automatically to questionID column. But I don't know how it is best (fastest) to do? table before rowID answID qryrow questionID datafield 1591 12 06e 06e 06e question 1593 12 06f 06f 06f question 1594 12 answer to the question 06f
10
3444
by: glenn | last post by:
I am use to programming in php and the way session and post vars are past from fields on one page through to the post page automatically where I can get to their values easily to write to a database or continue to process on to the next page. I am now trying to learn ASP to see if we can replace some of our applications that were written in php with an ASP alternative. However, after doing many searches on google and reading a couple...
10
3745
by: Rider | last post by:
Hi, simple(?) question about asp.net configuration.. I've installed ASP.NET 2.0 QuickStart Sample successfully. But, When I'm first start application the follow message shown. ========= Server Error in '/QuickStartv20' Application. -------------------------------------------------------------------------------- Configuration Error Description: An error occurred during the processing of a configuration file
53
4100
by: Jeff | last post by:
In the function below, can size ever be 0 (zero)? char *clc_strdup(const char * CLC_RESTRICT s) { size_t size; char *p; clc_assert_not_null(clc_strdup, s); size = strlen(s) + 1;
56
4812
by: spibou | last post by:
In the statement "a *= expression" is expression assumed to be parenthesized ? For example if I write "a *= b+c" is this the same as "a = a * (b+c)" or "a = a * b+c" ?
2
4288
by: Allan Ebdrup | last post by:
Hi, I'm trying to render a Matrix question in my ASP.Net 2.0 page, A matrix question is a question where you have several options that can all be rated according to several possible ratings (from less to more for example). I have a question object that has two properties that contain the collections Options and Ratings. now I want this kind of layout: --- Rating1 Rating2 Rating3 Option 1 () () ...
3
2559
by: Zhang Weiwu | last post by:
Hello! I wrote this: ..required-question p:after { content: "*"; } Corresponding HTML: <div class="required-question"><p>Question Text</p><input /></div> <div class="not-required-question"><p>Question Text</p><input /></div>
0
9727
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10386
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10398
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10133
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9204
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5554
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4339
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3865
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3017
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.