簡體   English   中英

c#中可調整大小的表格布局面板

[英]Resizable table layout panel in c#

我發現c#(。net 2.0)中的表格布局面板非常原始。 我想允許我的用戶調整表格布局面板中的列的大小,但是沒有現成的選項可以這樣做。 有沒有辦法找出光標是否直接在一個單元格的任何邊界上,如果是這樣,哪個單元格在它下面? 可能有這些信息,我們至少可以嘗試通過'代碼調整行/列的大小。 幫我找到,

  • 光標是否直接位於單元格的任何邊框上
  • 哪個單元格位於其下方(僅在第一個問題有答案時適用)

非常感謝,

Sudarsan Srinivasan

如果你的布局不是太復雜,也許你可以通過使用SplitContainer控件實現你想要的? 不幸的是,每個SplitContainer只有兩個“單元格”,但您可以在另一個SplitContiner面板中嵌入SplitContainer以獲得更多可調整大小的單元格:

┌──────────────────┐
│┌─────┬──────────┐│
││     │          ││
││     │          ││
│└─────┴──────────┘│
├──────────────────┤
│┌──────────┬─────┐│
││          │     ││
││          │     ││
│└──────────┴─────┘│
└──────────────────┘

好的,所以ASCII藝術從來都不是我強大的技能之一,但我認為你明白了這一點; o)

建立在@FredrikMörk的解決方案之上:

嵌入另一個SplitContainer之后,唯一的缺點是它們不會自動調整大小,因此您很快就會丟失表格視圖。 解決方案可能是為每個適用的SplitContainer設置SplitterMoved事件處理程序:

private void mySplitContainer_SplitterMoved(object sender, SplitterEventArgs e) {
  mOtherySplitContainer.SplitterDistance = e.SplitX;
}

如果您的SplitContainer是水平使用e.SplitX ,如果它是垂直使用e.SplitY

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM