問題タブ [tablelayoutpanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
308 参照

.net - TableLayoutPanel - 行数でスクロールバーを追加する

userconrol 内に TableLayoutPanel があります。条件付きでパネルに垂直スクロール バーを追加したい - 5 行以上ある場合のみ。テーブル レイアウト パネルは、ユーザー コントロールのサイズに関係なく、5 行のみを表示する必要があります。他の行がある場合は、テーブル レイアウト パネルに表示されますが、下にスクロールしたときにのみ表示されます。

どうすればそれを達成できますか?

ありがとう。

0 投票する
1 に答える
1887 参照

c# - TableLayoutPanels に配置されたコントロールが「セル」に「スナップ」しないのはなぜですか?

TableLayoutPanel を動的に作成してから、その中に配置する Label と TextBoxes を動的に作成しています。

列と行の数を TableLayoutPanel に割り当てることができるのは論理的に思えます。

...その中に配置するコントロールを作成します。

...そして、作成されたコントロールを指定された「セル」(列と行) に配置します。

...しかし、それは機能しません-動的に作成された子コントロールの幅と高さの値を指定した場合も、指定しなかった場合も(その場合、それらは大きすぎます-具体的には、幅が大きすぎます)。

アップデート

このコードを追加しましたが、違いはありません。

// 行

UPDATEからUPDATEへ

設計時に、Label または TextBox (おそらく任意のコントロール) に Cell[col,row] プロパティがあることがわかります。読み取り専用でない場合は、動的にアクセスして、次のように設定できるようにしたいと思います。

コードでそれを行うことは可能ですか?その時点では、「Cell」プロパティは認識されていないようです(当然のことだと思います)。

UPDATE REVISITED への UPDATE

次のコード行を追加しました。

...そして、ラベルとテキストボックスが実際にセル(列と行) にあることがわかりました。

ただし、ラベルをセルの左上隅からセルの中央 (垂直方向と水平方向の両方) に移動する必要があります。

設計時でも (フォームに「テスト」/一時的な TableLayoutPanel を使用)、追加されたラベルは、TextAlign を何に設定しても (「中央」が最も賢明なようです)、セルの左上に頑固に貼り付けられたままです。

同様に、設計時にラベルの Location.X と Location.Y を変更しても何も起こりません。ラベルは、フジツボのようにセルの北西の角にくっついています。

0 投票する
2 に答える
33290 参照

c# - マージンおよび/またはパディングをラベルにプログラムで割り当てる

TableLayoutPanel内のいくつかのラベルをセルの左上からセルの中央に移動しようとすると、パディングやマージンを追加して実験しようとしています。

しかし、私が試したことは何もありません。これが私が試したコードと結果です:

0 投票する
2 に答える
855 参照

c# - TextBox.Width の値が、割り当てようとしている値を受け入れないのはなぜですか?

コンテナコントロールの幅と高さの一部である幅と高さを与えることにより、動的に作成されたコントロールを均等に配置しようとしています。

ただし、寸法を計算する関数は正しいのですが、何らかの理由で Wi​​dth プロパティへの割り当てが頑固に拒否されています。WidthToUse() 関数は 19 を返しますが、その値を動的に作成された TextBox に割り当てようとすると、値は 630 のままです! そもそもなぜ 630 で、なぜ割り当てを拒否するのですか?

高さでさえ、「機能」はまったく正しく機能しません。コントロールが多すぎるか、この計算を使用してすべてのコントロールを収容するのに十分なスペースがパネルにありません。

これが私のコードです:

0 投票する
2 に答える
13855 参照

c# - 項目の高さによる ListBox AutoSizes

フォーム内のすべての要素に TableLayoutPanel を使用しています。Dock Fill を使用して、TextBox と ListBox のサイズを自動調整します。TextBox は TableLayoutPanel のセルに完全に収まりますが、ListBox には収まりません。アイテムの高さによって自動サイズ調整されます。

ここに画像の説明を入力

ListBox の下部とフォームの下部の間のこのギャップを削除するにはどうすればよいですか? ListBox の高さを特定の値で設定できることはわかっています (たとえば、ListBox の項目の高さは 16、16 * 10 要素 = 160、160 で正しく収まります)。他に解決策はありますか?
私はC#を使用しています。

0 投票する
1 に答える
1787 参照

c# - コードがForm1.Designer.csの外部にある場合、テーブルレイアウトパネルは画面に描画されません(または機能しません)

私はC#フォームアプリケーションで作業しています。

テーブルレイアウトパネルをウィンドウにドラッグアンドドロップし、コンポーネントを動的に追加しForm1.Designer.csました。自動生成されたファイルの外部では、コードはForm1.csファイルにあります。

そこで、いくつかのforループを追加して、レイアウトテーブルを埋める必要のあるすべてのコンテンツを追加します。これは正常に完了しました。

問題は、テーブルレイアウトも動的に作成したいということです。そのため、自動生成されたコードをデザイナーファイルからコピーして貼り付け、[デザイン]からd&dテーブルレイアウトを削除しました。

これは私が他のコンポーネントに対して行ったことであり、シームレスに機能しましたが、何らかの理由で、これは機能しません。

期待される結果は、(非表示のレイアウトパネル)にその中のすべてのイメージボックスが表示されることです。

出力は、単に空のウィンドウを示しています。

コードは次のとおりです。

そしてすぐ下:

したがって、コードの場所を変更する前にイメージボックスをスクリーニングするために印刷していたので、問題はここにあると確信しています。したがって、問題はそこにあるはずですが、念のために:

私はpaintLayoutTableOnScreen()次のように呼んでいます:

paintTablesInScreen()次のことを行います。

およびdrawTable()

0 投票する
2 に答える
2629 参照

c# - C# .NET TableLayoutPanel の最後の列が引き伸ばされる

プログラムで TableLayoutPanel を作成しています。2行あります。列の数はユーザーによって追加されます。

一度に 1 列ずつ削除することもできます。

しかし、私がそうするたびに、空の列を閉じるためにすべてのコントロールを1列戻すと、最後の列が引き伸ばされて、絶対幅ではなくオートサイズがあるかのように、残ったスペースがいっぱいになります。

問題は、最後の列を残りの列と同じ幅にしたいのですが、その方法がわかりません。

読んでくれてありがとう、ダニー

0 投票する
2 に答える
6237 参照

c# - TableLayout 内に配置されたドッキングされたコントロールは、作成時のサイズよりも自動的に小さくなりません。

この問題は、説明よりも実証されているため、実際の問題を確認するために使用される Visual Studio 2010 プロジェクトでgit リポジトリをセットアップしました。

ComboBox コントロール ( comboField) を TableLayout コントロール ( ) に追加したプロジェクトがありtableLayoutPanel1ます。DockComboBoxのプロパティを、Fill配置された TableLayout コントロールのセルを埋めるように設定しました。また、配置された Form を埋めるようDockに、TableLayout コントロールのプロパティを に設定しましたFillの上。ComboBox の幅は現在 193 ピクセルです。

フォームを実行して幅を広げると、予想どおり ComboBox のサイズが大きくなります。フォームのサイズを縮小すると、元のサイズ (193 ピクセル) になるまでComboBox のサイズが縮小されます。その時点で、ComboBox の幅はそれ以上減少せず、コントロールの右側が切り取られます。これは私の予想とは逆です。no がMinimumSize指定されている場合、ComboBox の幅はゼロになります。MinimumSizeTableLayout コントロールなど、フォーム上の他のコントロールに対しても指定されていません。

関連する場合、TableLayout の最初の列の幅はAbsolute100 ピクセルのサイズに設定され、TableLayout の 2 番目の列の幅は に設定されていAutoSizeます。

このフォームが私の期待に反して動作している理由を明らかにし、これを希望どおりに機能させる方法についてアドバイスできますか? どんな助けでも大歓迎です。

0 投票する
1 に答える
1814 参照

c# - Windows フォーム TableLayoutPanel の異なるセル サイズ

TableLayoutPanelWindows フォームで、異なるセル サイズ (行および/または列のいずれか) が含まれるようにするにはどうすればよいですか?

たとえば、行 1 にはセルが 1 つしかない場合、行 2 にはセルが 5 つある場合、行 3 にはセルが 5 つある場合がありますが、列のサイズは異なります。

0 投票する
2 に答える
1600 参照

c# - 表示領域のパーセンテージに基づく自動スクロールの TableLayoutPanel の高さ

行を動的に追加する自動スクロール TableLayoutPanel があります。各行の高さを TableLayoutPanel の表示領域の 1/3、つまり、4 番目のパネルの追加で展開されて自動スクロールが開始される前のパネルの元の高さにしたいと思います。リーチ行の高さを手動で設定し、絶対高さとして設定しますが、TableLayoutPanel のサイズは変更できます。その場合、サイズ変更イベントを処理し、各行の絶対高さを再計算できますが、もっと良い方法があるかどうか疑問に思っています。行の高さを表示パネル領域のパーセンテージとして指定する方法はありますか、それとも手動で計算して絶対的な高さのルートを使用する必要がありますか?