2009-06-11 13 views
5

)C#(.net 2.0)のテーブルレイアウトパネルは非常にプリミティブなものです。テーブルレイアウトパネルで列のサイズを変更できるようにしたかったのですが、既定のオプションはありません。カーソルがセルの境界の真上にあるかどうかを調べる方法はありますか?その場合、その下にあるセルは何ですか?この情報を持っているかもしれませんが、私たちは少なくとも行/列を使ってその行/列のサイズを変更することができます。私はカーソルがセルが(最初の質問が答えを持っている場合にのみ適用)、その下にあるセル サイズ変更可能なテーブルレイアウトパネル(C#

  • のいずれかの境界線の上に直接であるかどうか、
  • 多くのおかげで、

    • を見つけるのに役立ちます

      Sudarsanスリニバサン

    +0

    こんにちはsudarsanyesこの問題を解決しましたか?私は今、同じ問題に直面しています。私のアプリケーションのユーザーは、ランタイム中に私のアプリのtableLayoutPanelの行と列のサイズを変更できる必要があります –

    答えて

    7

    あなたが過度に複雑でないレイアウト場合は、多分あなたは、あなたがSplitContainerコントロールを使用して欲しいものを達成することができますか?残念ながら、各SplitContainerは2つだけ、「セル」を持つことになりますが、あなたはより多くのサイズ変更可能なセルを取得するには、別のSplitContinerパネルでSplitContainerを埋め込むことができます。

    ​​

    OK、そうASCIIアートは私の強力なスキルの一つはなかったが、私あなたはポイントを得ると思います; O)

    +0

    それは非常に複雑でコストがかかるでしょうか? [あなたは私よりもASCII芸術で本当にうまいです:D] – sudarsanyes

    +0

    醜いですが、テーブルレイアウトパネルでイベントを処理しようとするとかなり複雑でコストがかかりません。 – Benjol

    +0

    これは私が使用する回避策ですが、ユーザーが内側の分割されたコンテナのサイズを変更した時点で、他の分割されたコンテナと同期していないため、表形式のビューを維持する(単純な)方法はないと思います。あなたのテーブル。おそらく、コーディングイベントハンドラで。 – tsemer

    0

    建物の@Fredrik Mörk's solutionの上:

    別のSplitContainer(複数可)を埋め込んだ後、唯一の欠点は、あなたがすぐに表形式のビューを失うので、彼らは自動的に、一緒にサイズを変更していないということです。それは垂直使用e.SplitYだ場合、あなたのSplitContainerは、水平使用e.SplitXある場合

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

    :ソリューションには、該当する各SplitContainerのためSplitterMovedイベントハンドラを設定することであろう。

    関連する問題