掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++2008でNewRow()で作成した列にSystemIconsを定義したい (ID:70751)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
どうしても解決できず困っております、どなたかご教示いただけないでしょうか。 開発環境はVC++ 2008 ExpressEdtion OSはWindows Vista Home Premium 64bitです。 DataGridViewといくつかのテキストボックスとボタンを配置した画面で、あるボタン(btDataAdd)を クリックした際に、名前と年齢と合わせてアイコン(SystemIcons::Asterisk)を登録したいと 思っています。 NewRow()で新規に列を作成して名前や年齢を定義するときに、合わせてアイコンを登録したいのですが、 どうすればよいのかわかりません。 処理としてはbtDataAdd_Click()の中で詰まっています・・・。 どなたかアドバイスをいただけないでしょうか。 よろしくお願いいたします。 以下、ソース ----------------------------------------- public: DataTable^ _gDT; private: System::Void Form1_Shown(System::Object^ sender, System::EventArgs^ e) { DataGridInit(); } private: System::Void DataGridInit(void){ dataGridView1->DataSource = nullptr; dataGridView1->Rows->Clear(); dataGridView1->Columns->Clear(); dataGridView1->AutoGenerateColumns = false; dataGridView1->ColumnHeadersVisible = true; dataGridView1->RowHeadersVisible = true; DataGridViewImageColumn^ col1 = gcnew DataGridViewImageColumn(); col1->DataPropertyName = "COL1"; col1->AutoSizeMode= DataGridViewAutoSizeColumnMode::AllCells; col1->Name ="アイコン"; col1->ImageLayout = DataGridViewImageCellLayout::Zoom; col1->ValuesAreIcons =false; col1->Image = gcnew Bitmap("C:\\setup.bmp"); DataGridViewTextBoxColumn^ col2 = gcnew DataGridViewTextBoxColumn(); col2->DataPropertyName ="COL2"; col2->AutoSizeMode= DataGridViewAutoSizeColumnMode::AllCells; col2->Name = "名前"; DataGridViewTextBoxColumn^ col3 = gcnew DataGridViewTextBoxColumn(); col3->DataPropertyName ="COL3"; col3->AutoSizeMode= DataGridViewAutoSizeColumnMode::AllCells; col3->Name = "年齢"; DataGridViewTextBoxColumn^ col4 = gcnew DataGridViewTextBoxColumn(); col4->DataPropertyName ="COL4"; col4->AutoSizeMode= DataGridViewAutoSizeColumnMode::AllCells; col4->Name = "性別"; array< DataGridViewColumn^ >^cols = {col1,col2,col3,col4}; dataGridView1->Columns->AddRange(cols); for( int i = 0 ; i < dataGridView1->ColumnCount ; i++){ dataGridView1->Columns[i]->SortMode = DataGridViewColumnSortMode::NotSortable; } _gDT = gcnew DataTable("D_TABLE"); CreateDataTable(); } private: System::Void CreateDataTable(void){ try{ DataColumn^ wCol; wCol = gcnew DataColumn(); wCol->ColumnName = "COL1"; _gDT->Columns->Add(wCol); wCol = gcnew DataColumn(); wCol->DataType = Type::GetType("System.String"); wCol->ColumnName = "COL2"; _gDT->Columns->Add(wCol); wCol = gcnew DataColumn(); wCol->DataType = Type::GetType("System.Int32"); wCol->ColumnName = "COL3"; _gDT->Columns->Add(wCol); wCol = gcnew DataColumn(); wCol->DataType = Type::GetType("System.Int32"); wCol->ColumnName = "COL4"; _gDT->Columns->Add(wCol); }catch(Exception^ e){ MessageBox::Show(e->Message,"Error",MessageBoxButtons::OK,MessageBoxIcon::Warning); } } private: System::Void btDataAdd_Click(System::Object^ sender, System::EventArgs^ e) { DataRow^ row = _gDT->NewRow(); //ここで何とかIconを定義したい・・・。 row["COL1"] = System::Drawing::SystemIcons::Asterisk; row["COL2"] = tbName->Text; row["COL3"] = Convert::ToInt32(tbAge->Text); row["COL4"] = 1; _gDT->Rows->Add(row); dataGridView1->DataSource = _gDT; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.