C++: DataGridView::DataSource

#pragma once
#include "Form2.h"

namespace cdemo {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Form1 摘要
	///
	/// 警告: 如果更改此类的名称,则需要更改
	///          与此类所依赖的所有 .resx 文件关联的托管资源编译器工具的
	///          “资源文件名”属性。否则,
	///          设计器将不能与此窗体的关联
	///          本地化资源正确交互。
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: 在此处添加构造函数代码
			//
		}

	protected:
		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Label^  label1;
	private: System::Windows::Forms::DataGridView^  dataGridView1;
	protected: 

	private:
		/// <summary>
		/// 必需的设计器变量。
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// 设计器支持所需的方法 - 不要
		/// 使用代码编辑器修改此方法的内容。
		/// </summary>
		void InitializeComponent(void)
		{
			this->label1 = (gcnew System::Windows::Forms::Label());
			this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->BeginInit();
			this->SuspendLayout();
			//
			// label1
			//
			this->label1->AutoSize = true;
			this->label1->Location = System::Drawing::Point(487, 21);
			this->label1->Name = L"label1";
			this->label1->Size = System::Drawing::Size(41, 12);
			this->label1->TabIndex = 0;
			this->label1->Text = L"label1";
			//
			// dataGridView1
			//
			this->dataGridView1->AllowUserToAddRows = false;
			this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;
			this->dataGridView1->Location = System::Drawing::Point(32, 84);
			this->dataGridView1->Name = L"dataGridView1";
			this->dataGridView1->RowTemplate->Height = 23;
			this->dataGridView1->Size = System::Drawing::Size(478, 344);
			this->dataGridView1->TabIndex = 1;
			this->dataGridView1->CellDoubleClick += gcnew System::Windows::Forms::DataGridViewCellEventHandler(this, &Form1::dataGridView1_CellDoubleClick);
			//
			// Form1
			//
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(586, 485);
			this->Controls->Add(this->dataGridView1);
			this->Controls->Add(this->label1);
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->EndInit();
			this->ResumeLayout(false);
			this->PerformLayout();

		}
#pragma endregion
	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {

				 int i,pr=0;
				 for(i=1;i<=10;i++)
					 pr=pr*i;

				 //char s="pr=%d";

				 this->label1->Text= pr.ToString();

				             //设置dataGridView的一些属性
            dataGridView1->Dock=DockStyle::Fill;
            dataGridView1->AutoResizeColumns();
            dataGridView1->AutoSizeColumnsMode=DataGridViewAutoSizeColumnsMode::AllCells;
            dataGridView1->EnableHeadersVisualStyles=true;/*根据应用程序来设置的,如果为false则根据自己的设置来绘制*/

            //设置表头的属性
            DataGridViewCellStyle^ headerStyle=gcnew DataGridViewCellStyle;
            headerStyle->Font=gcnew System::Drawing::Font("Times New Roman",12,FontStyle::Bold);
            headerStyle->BackColor=Color::AliceBlue;
            headerStyle->ForeColor=Color::BurlyWood;
            dataGridView1->ColumnHeadersDefaultCellStyle=headerStyle;

            dataGridView1->AutoResizeColumnHeadersHeight();

				DataSet^ myDataSet = gcnew DataSet("Game Data");
				myDataSet->Tables->Add("Player");
				myDataSet->Tables->Add("Score");

				DataTable^ playerTable = myDataSet->Tables["Player"];
				DataColumn^ firstNameColumn1 = playerTable->Columns->Add("First Name",String::typeid);
				DataColumn^ lastNameColumn1 = playerTable->Columns->Add("Last Name",String::typeid);
				playerTable->Columns->Add("Email", String::typeid);
				playerTable->Rows->Add("geovin","du","geovindu@163.com");
				playerTable->Rows->Add("聚文","涂","geovindu@qq.com");
                 //1.
				//dataGridView1->DataSource=myDataSet->Tables["Player"];//playerTable;
				//2.
                dataGridView1->DataSource=playerTable;
				dataGridView1->Refresh();
				//dataGridView1->DataBindings::get;

			 }

			 ////
	        private: System::Void dataGridView1_CellDoubleClick(System::Object^  sender, System::Windows::Forms::DataGridViewCellEventArgs^  e) {

             Form2 ^ frm2 = gcnew Form2();
			 frm2->Text="编辑资料";
			 frm2->textBox1->Text=dataGridView1->Rows[e->RowIndex]->Cells["First Name"]->Value->ToString();
			 frm2->textBox2->Text=dataGridView1->Rows[e->RowIndex]->Cells["Email"]->Value->ToString();
             frm2->Show();
             //this->Hide();

			 }
	};
}
#pragma once

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

namespace cdemo {

	/// <summary>
	/// Form2 摘要
	///
	/// 警告: 如果更改此类的名称,则需要更改
	///          与此类所依赖的所有 .resx 文件关联的托管资源编译器工具的
	///          “资源文件名”属性。否则,
	///          设计器将不能与此窗体的关联
	///          本地化资源正确交互。
	/// </summary>
	public ref class Form2 : public System::Windows::Forms::Form
	{
	public:
		Form2(void)
		{
			InitializeComponent();
			//
			//TODO: 在此处添加构造函数代码
			//
		}

	protected:
		/// <summary>
		/// 清理所有正在使用的资源。
		/// </summary>
		~Form2()
		{
			if (components)
			{
				delete components;
			}
		}
	public: System::Windows::Forms::TextBox^  textBox1;
	protected:
	public: System::Windows::Forms::TextBox^  textBox2;

	private:
		/// <summary>
		/// 必需的设计器变量。
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// 设计器支持所需的方法 - 不要
		/// 使用代码编辑器修改此方法的内容。
		/// </summary>
		void InitializeComponent(void)
		{
			this->textBox1 = (gcnew System::Windows::Forms::TextBox());
			this->textBox2 = (gcnew System::Windows::Forms::TextBox());
			this->SuspendLayout();
			//
			// textBox1
			//
			this->textBox1->Location = System::Drawing::Point(183, 50);
			this->textBox1->Name = L"textBox1";
			this->textBox1->Size = System::Drawing::Size(100, 21);
			this->textBox1->TabIndex = 0;
			//
			// textBox2
			//
			this->textBox2->Location = System::Drawing::Point(183, 102);
			this->textBox2->Name = L"textBox2";
			this->textBox2->Size = System::Drawing::Size(100, 21);
			this->textBox2->TabIndex = 1;
			//
			// Form2
			//
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(542, 440);
			this->Controls->Add(this->textBox2);
			this->Controls->Add(this->textBox1);
			this->Name = L"Form2";
			this->Text = L"Form2";
			this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load);
			this->ResumeLayout(false);
			this->PerformLayout();

		}
#pragma endregion
	private: System::Void Form2_Load(System::Object^  sender, System::EventArgs^  e) {

			 }
	};
}
时间: 2024-10-21 15:36:35

C++: DataGridView::DataSource的相关文章

DataGridView.DataSource= list(Of T)

      注:本文例子的代码承接上篇文章:DataTable填充实体类返回泛型集合.       在D层查询完成之后,我们将DataTable转化为泛型集合,然后经过中间各层,返回U层,到了这里,问题来了,我们这时候要将这个集合作为数据源绑定到DataGridView上,并将结果显示出来,本文主要介绍的就是如何将集合显示在DataGridView上的问题.(或许你返回的是datatable或一个实体,它们加载数据的原理是一至滴~)       一,显示实体的全部属性             当

两个简单方法加速DataGridView

datagrid DataGridView虽然好用,但是如果数据量比较大的话就会出现性能的问题.网上提供的一般做法是通过虚拟模式(Virtual Mode)来加速.但是有的时候,可以通过简单的设置来加速DataGridView. (1)使用绑定数据.就是通过加载DataTable然后通过BindingSource来和DataGridView.DataSource进行交互. (2)不要使用AutoSizeColumnsMode.AllCells.如果这么设置,DataGridView只有等到所有的

DataGridView怎么调整列宽

DataGridView有一个属性是AutoSizeColumnMode,他有几个枚举值: 1.AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格. 2.AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格. 3.ColumnHeader 调整列宽,以适合列标题单元格的内容. 4.DisplayedCells 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,包括标题单元格. 5.DisplayedCellsExc

自定义控件-自定义DataGridview下拉输入不同单元就不显示了

问题描述 自定义DataGridview下拉输入不同单元就不显示了 1C using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms;using System.Drawing.Design;using System.Data.Common;us

c-C# 人员管理小系统 信息加入 不用数据库 DataGridView

问题描述 C# 人员管理小系统 信息加入 不用数据库 DataGridView C#人员管理小系统 有 namespace 人员管理 { public class Person { public int id;//学号 public string name;//姓名 public int sex;//性别 public int age;//年龄 public DateTime time;//出生日期 } } 然后需要添加20人的信息 不需要使用数据库 最后用DataGridView显示出来 怎么

dataset-求教,,,datagridview竟然不显示数据???求解,,,

问题描述 求教,,,datagridview竟然不显示数据???求解,,, string SQL_C = ""select Interior_idlocationlocation_Xlocation_Y from SlipSand_slope_1""; DataSet DS = new DataSet(); DS = DataOperate.DS(SQL_C); DataGridView DGV = new DataGridView(); DGV.DataSourc

关于c#的datagridview的一些问题,急急急

问题描述 我希望选combobox的一项,再按query按钮,在datagridview里就可以显示combobox选中的内容(datagridview不知这一项,还要三项是通过从combobox里得到的第一项从数据库中得到),现在数据库没有建,只是这样[Serializable][TableName("RMS_EQUIPMENT_GROUPS")]publicclassEquipmentGroupEntity:CommonEntity{[ColumnName("EQUIPM

我想把数据库中的一张表导入到datagridview中为什么老是实现不了

问题描述 解决方案 解决方案二:调用这个函数了吗?你在函数倒手第二行设个断点,看下ds里有木有数据另建议:con.Open()和con.Clos()两行代码可以注销掉,此处用不上解决方案三:这个函数在之前用Form1_Load调用过但是就是不显示也不知道为什么解决方案四:断点跟啊,看到底走没走,走到哪里了,报错了没有,有没有数据解决方案五:引用楼主ZWLIN1991的回复:先查看数据库连接是否正常?再查ds中的table中是否有数据?解决方案六:学会自己断点跟,否则有10000分也不够你问问题的

datagridview在win7,win10显示慢的问题

问题描述 大家好.我写了一个程序,有一个9列*40行的datagridview(由于需要显示颜色特性,我是逐行添加数据的).在win7,win10的环境下运行时datagridview加载时有明显的刷新过程,而同样的程序在xp运行则没有该问题,请问是何原因,能如何解决?ps:我将逐行添加数据修改为直接绑定datagridview.datasource也有该问题. 解决方案 解决方案二:刷新过程应该在xp上也存在吧.就算是你直接绑定datagridview.datasource也会刷新的.建议你最