using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); array^ Items = gcnew array { "Appleman", "Challa", "Chand", "Cornell", "Fraser", "Gunnerson", "Harris", "Rammer", "Symmonds", "Thomsen", "Troelsen", "Vaughn" }; clBox->Items->AddRange(Items); lBox->Items->AddRange(Items); cBox = gcnew array(Items->Length); int j = cBox->Length/2; for (int i = 0; i < j; i++) { // Build Left Column cBox[i] = gcnew CheckBox(); cBox[i]->Location = Drawing::Point(50, 160+(30*i)); cBox[i]->TabIndex = i+2; cBox[i]->Text = Items[i]->ToString(); cBox[i]->CheckStateChanged += gcnew EventHandler(this, &Form1::cBox_CheckStateChanged); // Build Right Column cBox[i+j] = gcnew CheckBox(); cBox[i+j]->Location = Drawing::Point(180, 160+(30*i)); cBox[i+j]->TabIndex = i+j+2; cBox[i+j]->Text = Items[i+j]->ToString(); cBox[i+j]->CheckStateChanged += gcnew EventHandler(this, &Form1::cBox_CheckStateChanged); } // Add all CheckBoxes to Form Controls->AddRange(cBox); } private: System::Windows::Forms::ListBox^ lBox; System::Windows::Forms::CheckedListBox^ clBox; array^ cBox; void InitializeComponent(void) { this->lBox = (gcnew System::Windows::Forms::ListBox()); this->clBox = (gcnew System::Windows::Forms::CheckedListBox()); this->SuspendLayout(); // // lBox // this->lBox->FormattingEnabled = true; this->lBox->Location = System::Drawing::Point(356, 32); this->lBox->Name = L"lBox"; this->lBox->Size = System::Drawing::Size(120, 264); this->lBox->TabIndex = 3; this->lBox->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::lBox_SelectedIndexChanged); // // clBox // this->clBox->FormattingEnabled = true; this->clBox->Location = System::Drawing::Point(12, 32); this->clBox->MultiColumn = true; this->clBox->Name = L"clBox"; this->clBox->Size = System::Drawing::Size(323, 79); this->clBox->TabIndex = 2; this->clBox->ThreeDCheckBoxes = true; this->clBox->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::clBox_SelectedIndexChanged); this->clBox->ItemCheck += gcnew System::Windows::Forms::ItemCheckEventHandler(this, &Form1::clBox_ItemCheck); // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(494, 392); this->Controls->Add(this->lBox); this->Controls->Add(this->clBox); this->Name = L"Form1"; this->Text = L"Splitting The Check List Box"; this->ResumeLayout(false); } System::Void clBox_ItemCheck(System::Object^ sender, System::Windows::Forms::ItemCheckEventArgs^ e) { // update state of CheckBox with same index as checked CheckedListBox cBox[e->Index]->CheckState = e->NewValue; } System::Void clBox_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) { // update ListBox with same selected item in the CheckedListBox lBox->SelectedItem = clBox->SelectedItem->ToString(); } System::Void lBox_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) { // update CheckedListBox with same selected item in the ListBox clBox->SelectedItem = lBox->SelectedItem; } void cBox_CheckStateChanged(Object^ sender, EventArgs^ e) { // update state of CheckedListBox with same index as checked CheckBox CheckBox^ cb = (CheckBox^)sender; clBox->SetItemCheckState(Array::IndexOf(cBox, cb), cb->CheckState); } }; [STAThreadAttribute] int main(array ^args) { Application::Run(gcnew Form1()); return 0; }