問題タブ [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# - C#-設計時にTableLayoutPanelに追加されたボタンへの参照を実行時にデータ構造に入力します
Visual C#2008Expressエディションを使用しています。
設計時に
、TabControl [myTabControl]を追加したフォーム[myMainForm]が
あり、myTabControlに単一のtabPage [myTabPage]が
あり、このtabPageにtableLayoutPanel [myTableLayoutPanel]を追加し、myTablelayoutPanelに追加した
場合10個のボタン(button1、button2、button3など)を追加しました。
実行時に、myTableLayoutPanelに追加した10個のボタンすべてへの参照をデータ構造に入力します。ボタンへの参照を可能な限り単純で最も効率的な方法で操作したいと思います。配列と組み合わせたfor...nextループは、問題に取り組むための最良のアプローチですか?
プログラムでボタンをパネルに追加できることはわかっていますが、そうする場合は、コードの視覚的な設定も微調整する必要があります。コードをできるだけクリーンでシンプルに保つために、これは避けたいと思います。
誰かが私をこれに進めるために数行のコードを投稿することができれば、私は感謝するでしょう。
これをお読みいただきありがとうございます。ハッピーコーディング。
よろしく、
事
.net - TableLayoutPanel などの .NET クラスから派生したクラスをフォームで使用する方法
これは非常に基本的な質問です。多くの人が答えることができ、TableLayoutPanel だけでなく、他のすべての .NET コントロールにも当てはまると確信しています。
TableLayoutPanel から派生する新しいクラスを作成しました。.NET バージョンではなく、この派生をフォームで使用したいと考えています。ツールボックスの他のすべてのコントロールと同じように、ドラッグアンドドロップを使用できると期待しています。
ただし、これを行う方法がわかりません。また、派生クラスの場合、このフォームへのドラッグ アンド ドロップはデザイナーでは実行できないと推測しています。コードでのみ実行する必要があります。これについては確信が持てません。また、これが初めての .NET フォーム アプリケーションであるため、信頼できる経験がありません。
このコントロールを (直接ではなく) ホストするフォームは、MainForm というフォームに実装されています。deigner.cs (MainForm.Designer.cs) ファイルに移動して、メンバー変数を .NET 型ではなくカスタム型に変更できると思いますが、これがこれを実行するための確立された方法であるかどうかはわかりません機能の種類またはそれがハックであるかどうか。私の知る限り、これは自動的に生成されるため、XXXdesigner.cs ファイルのコードを手動で変更しないでください。
tablelayoutpanel - TableLayoutPanel: コンテンツ行のサイズを正しく取得できません
TableLayoutPanel を使用して、クライアント領域を 3 行 (1 列のみ) に分割しています。上段と下段は高さを固定するように設計されています。それらにはヘッダーとフッターが含まれ、最初はそれぞれに静的テキストを含む子ラベル コントロールが含まれます (最初から)。中央の行は、残りの領域を埋めるように動的にサイズ変更する必要があります。この中央のペインには、最終的にリストビューが含まれます。管理されているパネル (ExplorerTableLayoutPanel) オブジェクトを引数として取るマネージャー クラスがあります。
テーブル レイアウトの 3 つの行をそれぞれ作成する方法は 3 つあります。
私が見ている問題は、最後の行が 30 として要求した固定行の高さを占めていることです。この部分は正しいです。ただし、最初の行と 2 番目の行は残りのスペースをそれらの間で均等に分割していますが、これは私が望むものではありません。ご覧のとおり、最後の行とまったく同じ方法で、最初の行の行の高さを明示的に 30 に設定しましたが、これは機能していないようです。2 行目 (中央) の RowStyle サイズは SizeType.AutoSize に設定されていますが、これは残りのスペースを使い切ることを意味していたので、サイズを明示的に設定しないでください。私は間違っているかもしれませんが、よくわかりません。
c# - TableLayoutPanelで無効なスクロールバーを作成するにはどうすればよいですか
複数の列を持つテーブルレイアウトパネルがあります。垂直スクロールがヘッダーとフッターに影響を与えたくないので、ヘッダーとフッター用にさらに2つのテーブルレイアウトパネルを追加しました。ただし、3つの異なるテーブルレイアウトパネルがあるため、中央のパネルに垂直スクロールバーが表示されたときにセルの境界線を揃えることができません。1つの方法は、無効なスクロールバーを常に存在させ、必要な場合にのみ有効にすることです。チェックしましたが、それを行うための参照は見つかりませんでした。何か案は?
c# - C# TableLayoutPanel マウスリーブ
こんにちは、私は戦艦クローン ゲームを開発しており、TableLayoutPanel の MouseLeave イベントに問題があります。
最初のMouseMove:
これは正しく機能しているようです。
現在、MouseLeave イベント:
これは奇妙な動作です。コードを通過し、「HI」も表示されますが、PictureBox 画像は水に変更されません。理由についてのアイデアはありますか?これは常に発生するわけではなく、時々発生するだけです。
上記のコードが行っていることは、基本的に表のセルをスキャンすることであり、セルの内容が WATER の場合、表のセルの画像を SCAN に更新し、ユーザーが先に進むと、セルの画像を WATER に戻します。
これで十分な情報であることを願っています。さらに必要かどうか尋ねてください。
前もって感謝します。
ps これは、mouseover や mouseexit などの JavaScript を試みています。
私はいくつかの進歩を遂げました。MouseLeave の後、MouseMove が再度呼び出されるため、結果が発生しています。
私が思う別の方法でそれを論理化する必要があるだけです。
c# - プログラムで行/列のスパンを変更する(tablelayoutpanel)
tablelayoutpanelがあります。2x2-2列2行。
たとえば、1行2列目にボタンbutton1を追加しました。button1には、Fillに設定されたdockプロパティがあります。VS Designerでは、 button1の列/行スパンプロパティを設定できます。
button1 の行スパンプロパティをプログラムで変更できるようにしたいので、2番目の列すべて(1行と2行目)を埋めて元に戻すことができます。
どのように?
.net - フローレイアウト パネルと子コントロールの自動サイズ変更が機能しない
winform (C# .NET) で非常に単純な自動サイズ変更レイアウトを取得しようとしています。TableLayoutPanels と FlowLayoutPanels を試しましたが、何も機能しません。
実行時に作成される他のユーザーコントロールのコンテナーであるユーザーコントロールがあります-子コントロールを垂直にリストしたいので、それを StackPanel と呼びました。FlowLayoutPanel、TableLayoutPanel、および Panel (各コントロールを上部にドッキング) を使用してこれを試しました。
子ユーザーコントロールは、ラベルと任意の数のラジオボタン (またはその他の標準コントロール - それは問題ではありません) で構成されます。
子コントロールが作成されると、ラベル テキストが設定され (長い場合は新しい行に折り返す必要があります)、ラジオ ボタンが追加されます。
Resize イベントを使用したドッキング/自動サイズ設定または手動サイズ設定の組み合わせはないようです。これにより、クリッピングせずにすべてを表示し、フォームでサイズを変更できます。
ありがとう!
c# - Windowsフォームのtablelayoutpanelのセル間の間隔を削除しますか?
TableLayoutPanelクラスから継承するクラスMapをプログラムで作成しました。Mapクラスは、それぞれが背景画像を持つTileオブジェクト(Panelの子)を追加します。削除したい各セルの間に目立つスペースがあることを除いて、すべてが機能します。
周りを見回しましたが、TableLayoutPanelのセル間のスペースを削除する方法がわかりません。それを削除する最も簡単な方法は何ですか?
c# - TableLayoutPanel のセルの非表示と表示
テーブル レイアウト パネルには、1 列と 3 行があります。(各セルの [塗りつぶし] パネルに 1 つドッキングされています。)
行を非表示/表示できるようにしたいと思います。(いくつかのラジオ ボタンのユーザー選択に基づいて) いつでも 1 つの行のみを表示し、TableLayoutPanel のすべての領域を埋めるようにサイズを変更したいと考えています。
どうやってやるの?何かご意見は?
c# - .Net TableLayoutPanel –コントロールのクリアが非常に遅い
これは本当に簡単です。
データベースクエリに基づいたコントロール(ラベル、ボタン、およびボタン付きの一部のパネル)が入力されたTableLayoutPanelがあります。データを更新する必要がある場合は、TableLayoutPanel.Controls.Clear()を使用します。残念ながら、これは非常に遅い操作です。テーブルに入力するコードよりも高速であると思いますが、少なくとも3倍または4倍遅くなります。
メッセージボックスが表示された後にTableLayoutPanelに対して行われる単一の処理としてこれを実行することにより、Controls.Clear()を実行するときの速度が遅いことを明確に証明しました(その後、プロシージャが戻ります)。コントロールは下から上に向かって目に見えて消えます。レコードセットを使用してTableLayoutPanelを再設定すると、上から下に表示されるコントロールの速度は、私が見ることができる速度よりもほぼ速くなります。
私はすでにTableLayoutPanel.SuspendLayout()とResumeLayout()を実行しています。
フォームで使用this.DoubleBuffered = true
しても何も起こらないようです。
コントロール全体を破棄してコードで再作成することもできますが、これは大きな苦痛であり、優れたフォームデザイナーGUIを使用することは無意味です。コントロールに設定したすべてのプロパティを掘り下げて、そのコードの行を作成する必要があります(これは、デザイナーコード自体から取得できると思いますが、それでも間違っていると感じます)。
仕事をより速くする方法について何かアイデアはありますか?TableLayoutPanel以外のメソッドを使用することもできます...セルごとに複数のボタンを配置するか、テーブルヘッダーの列にまたがることができないようにする自由が必要です。
C#は、再描画中にフォーム全体を少なくともフリーズしてから、一度にペイントできますか?