問題タブ [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.
c# - テーブルレイアウトパネル
TableLayoutPanel は VS 2005 に存在しますか?
c# - 動的に設定された TableLayoutPanel のパフォーマンス低下
2 列の TableLayoutPanel を含むユーザー コントロールがあり、別のコントロールで選択された項目の詳細を表示する行を動的に追加するコマンドを受け入れます。したがって、ユーザーは他のコントロール (DataGridView) で行を選択し、DataGridView の SelectedItemChanged イベント ハンドラーで詳細コントロールをクリアしてから、新しく選択した項目のすべての行を再生成します (詳細はまったく異なる場合があります)。前に選択した項目から表示されます)。これはしばらくの間うまく機能します。しかし、選択した項目から別の項目に長時間移動し続けると、更新が非常に遅くなります (それぞれ 3 ~ 5 秒)。それは、すべてを適切に処分していないように聞こえますが、何が欠けているのかわかりません。TableLayoutPanel をクリアするためのコードは次のとおりです。
そして、次の詳細表示のために必要なすべてのコントロールを TableLayoutPanel にロードし終えたら、次のように呼び出します。
私は TableLayoutPanel 内でラベル (および TextBox を使用することはめったにありません) 以外は使用しておらず、ラベルと TextBoxes を作成時にコントロール リスト (DisposeAndClearControls() で参照) に追加しています。detailTable.Controls を反復処理してそのように破棄しようとしましたが、コントロールの半分が欠けているように見えました (デバッガーでステップスルーすることによって決定されます)。このようにして、私はそれらすべてを取得していることを知っています。
描画パフォーマンスを改善するための提案に興味がありますが、特に複数の選択での劣化の原因は何ですか.
.net - TableLayoutPanel のすべての列をまったく同じ幅に自動サイズ変更するにはどうすればよいですか?
正方形のコントロールをデザインに組み込み、サイズ変更を可能にする、かなり広範な UserControl を作成しようとしています。設計では正方形が必要なため、含まれているドッキングされたコントロールも正方形になるように、TableLayoutPanels のすべての列を同じ幅にする必要があります。
残念ながら、TableLayoutPanel の動作ではこの結果は得られません。
コントロールの同じパーセンテージを使用するように設定されたすべての列で TableLayoutPanel を使用すると、(7 列のセットで) 6 列が同じ幅になり、7 番目の列が可変幅になります。
この動作が発生するのは、7 つのサイズごとに 6 つのサイズで、7 つの列で共有する列ピクセルの数が等しくなく、7 番目の列がこの不等式のオーバーフローであるためだと理解しています。
私が欲しいと思うのは、他の7列のオーバーフローを取る8番目の列のようなもので、「実際の」列の7つすべてを実際の等しい幅にすることができますが、8番目の列は幅0にすることができます.
これまでのところ、この動作を許可する設定が見つかりません。
TableLayoutPanel を自分のやりたいようにする方法を誰か教えてもらえますか?それとも、多くの回避策のコードを書き始める必要がありますか?
編集:
Yacoder の回答に応えて、問題を示すコードと、TableLayoutPanel の標準機能と Dock プロパティを使用して問題を解決するための失敗した単純な試みを示す別のコードを追加しました。
問題のデモンストレーション:
単純な解決策:
再描画時のこのコードのひどいパフォーマンスについてお詫び申し上げます。
.net - TableLayoutPanel コントロール - 水平スクロールから列をロックしますか?
Windows フォーム アプリケーションで TableLayoutPanel を使用して、一連のコントロールをグリッドのような方法で整理しています。ユーザーが水平スクロールバーを適用したときに固定されたままになるように、TableLayoutPanel の最初のコントロール列をロックしたいと思います。任意のガイダンスをいただければ幸いです。
c# - C# のサイズ変更可能なテーブル レイアウト パネル
C# (.net 2.0) のテーブル レイアウト パネルは非常に原始的です。ユーザーがテーブル レイアウト パネルの列のサイズを変更できるようにしたかったのですが、それを行う既製のオプションがありません。少なくともカーソルがセルの境界線の上にあるかどうか、もしそうなら、どのセルがその下にあるかを調べる方法はありますか?? この情報を持っている可能性があります。少なくとも、コードを使用してその行/列のサイズを変更してみてください。見つけるのを手伝って、
- カーソルがセルの境界線上にあるかどうか
- その下にあるセル (最初の質問に回答がある場合にのみ適用)
どうもありがとう、
スダルサン・スリニバサン
css - WinForms と XAML は、CSS と同じロジックの恩恵を受けられませんか?
WinForms と XAML は、CSS と同じロジックの恩恵を受けられませんか?
今朝、Stackoverflow で未回答の質問をいくつか閲覧していたときに、ふと思いつきました。
FlowLayoutPanelまたはTableLayoutPanelを使用していない場合、WinForm でコントロールをレイアウトすると、正しく行わないと非難されます。
これは、CSS 対 Tablesに関する html の世界での (宗教的な) 議論とは対照的です。
テーブルでレイアウトされたUIの保守性の問題は、WinFormsに移植されたように思えます。また、HTML の形式と考えることができる XAML では、テーブル ベースのレイアウトが採用されています。テーブルを使用せずに XAML で何かを行うのは困難です。
WinForms と XAML は、CSS と同じロジックの恩恵を受けられませんか? テーブルのメンテナンスの問題をなくすことはできませんか? アクセシビリティは、テーブルを使用してレイアウトされた WinForm または WPF フォームの問題ではないことを認識しています。リーダーはレイアウト パネルを「見る」ことはありません。これは、WinForms には存在しない CSS の問題です。
しかし、WinForms/XML は非テーブル ベースのレイアウトの恩恵を受けられないのでしょうか? テーブルベースのアプローチでは、 「 OK 」ボタンの 3 つのダイアログ単位を左に移動する必要がないことは確かにわかっています。
.net - TableLayoutPanel内のサイズ変更時にコントロールが視覚的に遅れるのを防ぐにはどうすればよいですか?
いくつかのネストされた に基づく中程度の複雑さのレイアウトがありますTableLayoutPanel
。フォームのサイズを変更すると、より深くネストされたテーブル内のコントロールが、サイズ変更に遅れて表示されます。まず、これにより、フォームのサイズ変更中にコントロールが動き回るように見えますが、さらに悪いことに、コントロールが割り当てられたテーブル セルを離れるのに十分遅れると、コントロールの端が目に見えてクリップされます。
これを防ぐ方法はありますか、それともこれが最善のTableLayoutPanel
方法ですか?
編集: たくさんのプログラムを試してみた結果、サイズ変更の遅れはどこにでもある問題であるという結論に達しました。私には、これは避けられないことであり、許容できることであると誰もが辞任したようです。もちろん、それが実際に避けられない場合、これを受け入れることははるかに簡単です:)
お気に入りの「優れた UI」プログラムのラグを確認する最も簡単な方法: 左の境界線を保持してサイズを変更し、すべての右揃えのコントロールが飛び回るのを確認します (または、ステータスバーのように、上端と下端に配置されたコントロール)。あちこち壊れています。
ネイティブの Windows コントロールを使用するときにこれが避けられない理由を誰かが提供できれば、その答えを受け入れます。また、これに悩まされないネイティブ コントロールを使用するプログラムを見つけた場合は、そう言ってください。
.net - TableLayoutPanelのサイズを自動的に変更します
プログラムで作成したTableLayoutPanelがあります。正常に動作しますが、何かが見つかりませんでした。フォームのサイズが変更されたときに、列のサイズを自動的に設定するにはどうすればよいですか。パネルはDock.Topに設定されており、すべての列のサイズをパーセントで表すのではなく、フォームのサイズを変更すると、最後の列のみが大きくなります。これに対して何ができますか?各列にColumnStyleを追加する方法は次のとおりです。
c# - TableLayoutPanel Controls.Add Problem
2列4行のTableLayputPanelがあり、実行時にボタンを追加しようとしています。各ボタンを最初のセルに動的に追加したい:
私が理解しているように、これは既存のすべてのボタンをセルの上にシフトするはずです。これは最初の3回は機能するようですが、その後、新しいボタンを2番目のセルに数回挿入し、次に3番目のセルに挿入し、次に4番目のセルに挿入します...
特定のセルに対してControls.Add(ctrl、column、row)を呼び出すことができる回数に制限はありますか?
私は少し立ち往生しています、私は何が間違っているのですか?