2013-07-29 41 views
0

這是我的代碼,它返回(-1,-1)作爲單元格位置的座標。我認爲這意味着在表中找不到控制。我的單選按鈕坐在表格單元內的面板內。但是,radio.Container返回null。如何獲取TableLayoutPanel的單元位置爲radioButton

private void radio_CheckedChanged(object sender, EventArgs e) 
{ 
    var radio = sender as RadioButton; 
    var coord = tblPanel.GetPositionFromControl(radio);//returns (-1, -1) 
} 

我想通過任何必要的手段從發件人對象獲取行號。感謝您的任何幫助,您可以提供。

丹尼爾

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.getcolumn.aspx和http://msdn.microsoft.com/en-us/library/ system.windows.forms.tablelayoutpanel.getrow.aspx state _「控件的行/列位置,如果控件的位置由LayoutEngine確定,則爲-1。」_ – chancea

+0

引用引用「GetColumn」。您提供的第二個鏈接說:「要獲取控件的實際位置,即使其位置由LayoutEngine確定,請調用GetPositionFromControl方法。」 –

+0

不,我沒有對鏈接沒有幫助感到困惑,我只是對文檔本身感到困惑,這對我來說只是不清楚,起初它似乎在說'GetPositionFromControl'與getColumn和getRow是一樣的......也許這是有關? http://stackoverflow.com/questions/7142220/tablelayoutpanel-getcellposition-and-getpositionfromcontrol-how-do-they-differ – chancea

回答

1

原來我需要的是在這種情況下是面板parent屬性。容器始終爲空。

private void radio_CheckedChanged(object sender, EventArgs e) 
{ 
     var radio = sender as RadioButton; 
     var row = tblPanel.GetRow(radio.Parent); 
}