GetChildAtPoint不尊重ZOrder

时间:2016-09-27 01:29:48

标签: c# winforms z-order

我有一个面板控件,标签和文本框彼此相邻。在某些翻译中,标签变得太长,我试图使用GetChildAtPoint来确定标签何时变得太长并适当缩短(我知道其他/更好的方式,但我和#39;我的方法有点受限,因此这个选项)。

我检查了索引,标签是41,而文本框是0 我使用panelControl.GetChildAtPoint(new Point(labelControl.Location.X + labelControl.Width, labelControl.Location.Y))来尝试确定标签是否太长,但由于某种原因,上面的代码返回标签控件而不是文本框。

在调试中,labelControl.Location = 566,305和textBoxControl.Location = 716,290。标签控件的宽度为202.

我已经看到这种方法在其他情况下有效,并且在这里看不到任何差异,所以我真的不确定为什么它在这种情况下不起作用。

1 个答案:

答案 0 :(得分:1)

您的代码似乎没有问题,请添加一些测试以查看运行时的实际大小和位置更改

例如:

    <h2> View</h2>
<h3 id="showData"> Hello</h3>
<script>
  showData =  document.getElementByID('showData');
  var firebaseDataRef = firebase.database().ref().child('Age');
  firebaseDataRef.on('value', function(snapshot){
    showData.innerText = snapshot.value;
  });

the rest of my code:
    <input type=text" id="userName">
<input type="number" id="userAge">
<button id="btUpdateMessage" margin-bottom="20px" onclick="addFB()"> Update</button>
&nbsp;
<script>

  var lblCurrentMessage = document.getElementById('lblCurrentMessage'),
          userName = document.getElementById('userName'),
          btUpdateMessage = document.getElementById('btUpdateMessage'),
          userAge = document.getElementById('userAge'),
          rootRef = new Firebase('https://addview-c21e6.firebaseio.com'),
          currentMessageRef = rootRef.child('Name'),
          currentNameRef = rootRef.child('Age');
    function addFB()
  {
      currentMessageRef.push(userName.value);
      currentNameRef.push(userAge.value);
      userName.value = '';
      userAge.value = '';
    }