掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ボタンを押して,内部にスプリットコンテナ等の部品を持つタブページをタブコントロールに追加すると,DockやAnchorが正常に動作しない点について (ID:66567)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
開発環境:Vista, VS2005.NET C++ テンプレート:Windowsフォーム ボタンを押すとtabControlに,tabPageから継承したコントロールクラスを追加するプログラムを組んでいます.tabControlの追加には, clsAddTabPage^ TestTab; TestTab = gcnew clsAddTabPage(); this->tabControl1->Controls->Add(TestTab); のコードをボタンに設定し,実際にページの追加までは確認しました. ですが,この時に追加されたページと,ページに配置された各コントロールのドッキングやアンカーがうまく機能してくれません. 追加されたtabPageは見た目の上ではドッキングしているようですが,ウォッチを使うとSizeプロパティがデフォルトらしい(200,100)のまま動いてくれません. tabPageに追加したSplitContainerも,同様にSizeが(150,100)のまま動きません(Panelでも試しましたが,同様の問題が発生します). また,SplitContainerはサイズを変更した(例えば,(400,400)にした)際,内部に保持するPanel1,Panel2のサイズがデフォルト状態(Size(150,100)の時と同じ状態)で表示されてしまい,分割バーを動かした後で初めて変更したサイズにPanel1,Panel2のサイズが変更されます. この問題はすれば解決するでしょうか? 何方か,お知恵をお貸しください. 宜しくお願いします. 以下に,tabPageから継承して作成したクラスの全文を記載します. ---------------------------------------------------------------------- public ref class clsAddTabPage : public System::Windows::Forms::TabPage { #pragma region タブ追加コード //clsAddTabPage^ TestTab; //TestTab = gcnew clsAddTabPage(); //this->tabControl1->Controls->Add(TestTab); #pragma endregion public: System::Windows::Forms::SplitContainer^ Split; clsAddTabPage() { this->InitializeComponent(); } ~clsAddTabPage() { } void InitializeComponent(void) { this->Split = (gcnew System::Windows::Forms::SplitContainer()); this->Split->SuspendLayout(); this->SuspendLayout(); // // tabPageのプロパティ Size=(200,100) // this->BackColor = System::Drawing::SystemColors::Window; this->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; this->Location = System::Drawing::Point(0, 0); this->Dock = System::Windows::Forms::DockStyle::Fill; this->Text = "新規ページ"; this->Controls->Add(this->Split); // // Splitのプロパティ Size=(150,100) // this->Split->BackColor = System::Drawing::Color::Green; this->Split->Dock = System::Windows::Forms::DockStyle::Fill; this->Split->Location = System::Drawing::Point(0, 0); // Panel1 this->Split->Panel1->BackColor = System::Drawing::Color::Red; // Panel2 this->Split->Panel2->BackColor = System::Drawing::Color::Yellow; } }; ----------------------------------------------------------------------
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.