4
A
回答
6
發佈此信息給其他人,可能正在尋找與我相同的答案。
不幸的是,SplitContainer不爲摺疊事件提供任何直接事件。我發現有用的是將OPPOSITE面板的SizeChanged和/或ClientSizeChanged事件監視到正在摺疊的那個事件。
這意味着,如果我有興趣監視Panel2的崩潰,我將爲Panel1訂閱ClientSizeChanged事件。
實際上,我會建議監測SplitContainer的兩個面板的ClientSizeChanged,以保證您不會錯過任何初始化或直接拆分移動。
在下面的例子我有一個開關按鈕(btnToggle),我想的選中狀態遵循是Panel2在SplitContainer的可見性:
private void splitContainer_Panel2_ClientSizeChanged(object sender, EventArgs e)
{
btnToggle.Checked = !splitContainer.Panel2Collapsed;
}
private void splitContainer_Panel1_ClientSizeChanged(object sender, EventArgs e)
{
btnToggle.Checked = !splitContainer.Panel2Collapsed;
}
1
不是正好爲一個事件,但是那是因爲你應該知道什麼時候,當它的代碼運行它變得崩潰:
splitContainer1.Panel1Collapsed = true;
// do your stuff
否則,您可以觀看有關的SplitterMoved
或SplitterMoving
事件SplitContainer控件。
1
splitContainer.Panel1.VisibleChanged += (s, e) => { bool isPanel1Collapsed = splitContainer.Panel1Collapsed; };
0
在內部實現中,當一個面板在SplitContainer
被摺疊,是Visible
屬性設置爲false
,反之亦然。因此,通過處理所需面板的事件VisibleChanged
,可以在面板摺疊時檢測更改。
問題是,SplitterPanel
類不公開此事件。但是,由於它繼承了暴露此事件的Panel
類,因此您可以將其轉換爲Panel
並從那裏處理事件,如以下代碼示例所示。
private void Initialize()
{
split = new SplitContainer();
((Panel)split.Panel1).VisibleChanged += splitPanel1_Collapsed;
}
private void splitPanel1_Collapsed(object sender, EventArgs e)
{
var panel = (SplitterPanel)sender;
var panelCollapsed = !panel.Visible;
}
相關問題
- 1. 測試時崩潰
- 2. JQuery和IE8崩潰檢測
- 3. 檢測FLASH插件崩潰
- 4. SURF檢測後OpenCV崩潰
- 5. UIDatePicker在更改值時發生崩潰
- 6. SurfaceView在方向更改時崩潰
- 7. QML在更改Text.text時崩潰
- 8. 崩潰時更改css填充
- 9. 更改片段時TimerTask崩潰
- 10. NSMutableAttributedString在更改字體時崩潰?
- 11. 在表崩潰時更改圖形
- 12. Bootstrap崩潰更改圖標
- 13. 活動未更改 - 崩潰
- 14. iPhone - 檢測崩潰,提示用戶發送崩潰日誌
- 15. Appium檢測IOS崩潰並獲取崩潰日誌
- 16. 在.NET中檢測進程崩潰
- 17. OpenCV的人檢測樣品崩潰
- 18. 檢測Android藍牙LE/WLAN崩潰
- 19. 視覺泄漏檢測器崩潰
- 20. 檢測進程崩潰 - C++代碼
- 21. 檢測客戶端的JavaScript崩潰
- 22. 檢測非常早的崩潰
- 23. Android:檢測觸摸事件崩潰
- 24. 如何檢測Adobe Flash崩潰原因?
- 25. 崩潰檢測,日誌記錄和C++
- 26. 檢測Azure實例的崩潰
- 27. 檢測jQuery選項卡崩潰事件
- 28. Android:Monkey如何檢測崩潰和ANR
- 29. Android測試崩潰
- 30. 當更新更改單元格的單元格時UITableView崩潰
SplitterMoved只有在從複合模式轉換爲未複合時才起作用,SplitterMoving不會在解開和解開任何想法時着火。我知道Panel1Collapsed和Panel2Collapsed任何想法 – AMH 2012-01-04 14:17:20
@AMH用戶無法摺疊面板,這意味着您可以控制它。當你設置Panel1Collapsed = true;那麼你應該做任何你想做的事情。很難理解這個問題。也許發佈你想要做的一些代碼(編輯你的問題)。 – LarsTech 2012-01-04 14:31:13