चयनित जवाब है: इस तरह के एक संपत्ति करता है .NET ढांचे में मौजूद नहीं है।
लेकिन यदि आप ऐसी संपत्ति चाहते हैं, तो यहां एक नियंत्रण विस्तार है जो चाल करेगा। हां, यह स्क्रीन निर्देशांक का उपयोग करता है, लेकिन पोस्ट शीर्षक की सामान्य प्रकृति को देखते हुए, मुझे यकीन है कि इस पृष्ठ पर उतरने वाले कुछ उपयोगकर्ता इसे उपयोगी पा सकते हैं।
संयोग से, मैंने कुछ नियंत्रण घंटे माता-पिता के माध्यम से लूपिंग करके स्क्रीन निर्देशांक के बिना ऐसा करने का प्रयास करने में कुछ घंटे बिताए। मैं मेल खाने के लिए दो तरीकों को कभी नहीं मिला। ओरो को हंस पासेंट की टिप्पणी के कारण यह हो सकता है कि एरो खिड़की के आकार के बारे में कैसे झूठ बोलता है।
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Cambia
{
public static class ControlExtensions
{
public static Point FormRelativeLocation(this Control control, Form form = null)
{
if (form == null)
{
form = control.FindForm();
if (form == null)
{
throw new Exception("Form not found.");
}
}
Point cScreen = control.PointToScreen(control.Location);
Point fScreen = form.Location;
Point cFormRel = new Point(cScreen.X - fScreen.X, cScreen.Y - fScreen.Y);
return cFormRel;
}
}
}
स्रोत
2017-05-21 14:41:19
_control के location_ द्वारा आपको वास्तव में क्या मतलब है यह कर्सर का स्थान है जिसे आप चाहते हैं? – uday
@uDaY मेरा मतलब है: स्क्रीन निर्देशांक में। यदि फॉर्म 100,100 पर है और नियंत्रण 150,350 पर है तो मैं 50,250 प्राप्त करना चाहता हूं। – ispiro
देखें: http://stackoverflow.com/questions/8838621/how-to-determine-actual-windows-form-size-with-all-nonclient-elements-when-run –