0
VariableBox = gcnew ListView();
VariableBox->Font = ScriptEditorOptions->FontSelection->Font;
VariableBox->Dock = DockStyle::Fill;
VariableBox->BorderStyle = BorderStyle::Fixed3D;
VariableBox->BackColor = ScriptEditorOptions->BCDialog->Color;
VariableBox->ForeColor = ScriptEditorOptions->FCDialog->Color;
VariableBox->DoubleClick += gcnew EventHandler(this, &ScriptEditor::VariableBox_DoubleClick);   
VariableBox->View = View::Details;
VariableBox->MultiSelect = false;
VariableBox->CheckBoxes = false;
VariableBox->FullRowSelect = true;
VariableBox->HideSelection = false;
VariableBox->Tag = (int)1;

ColumnHeader^ VariableBoxName = gcnew ColumnHeader();
VariableBoxName->Text = "Variable Name";
VariableBoxName->Width = 70;
ColumnHeader^ VariableBoxType = gcnew ColumnHeader();
VariableBoxType->Text = "Type";
VariableBoxType->Width = 50;
ColumnHeader^ VariableBoxIndex = gcnew ColumnHeader();
VariableBoxIndex->Text = "Index";
VariableBoxIndex->Width = 50;
VariableBox->Columns->Add(VariableBoxName);
VariableBox->Columns->Add(VariableBoxType);
VariableBox->Columns->Add(VariableBoxIndex);
VariableBox->ColumnClick += gcnew ColumnClickEventHandler(this, &ScriptEditor::VariableBox_ColumnClick);

WinForms アプリケーションに上記のコードがあります。コントロールはメイン フォームに直接追加されます。何らかの理由で、レイアウトが[詳細]に設定されている場合、アイテムまたは列はレンダリングされません- スクロール バーのみが表示されます。次のコードは、アイテムをそのコレクションに追加するために使用されます。

ListViewItem^ Item = gcnew ListViewItem("Qw");
Item->SubItems->Add("Int");
Item->SubItems->Add("10");
VariableBox->Items->Add(Item);  

(実行時または設計時に) 他のビューに切り替えると、問題が修正されます。なぜこれが起こっているのかについてのアイデアはありますか?

編集:バンプ!それとも許可されていませんか?

4

1 に答える 1

0

コントロールが表示される前に、列ヘッダーを削除していたことがわかりました。

于 2010-10-14T14:27:04.720 に答える