VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1336|回复: 11

在VC.NET中DataGrid控件的列宽设置!!

[复制链接]

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-3-23 01:00:01 | 显示全部楼层 |阅读模式
我找了很多资料,其中说的方法都是6.0的
_variant_t vIndex;
vIndex=long(0);
m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
在根本不行的,在2015中CDataGrid类根本没有GetColumns(),GetItem(),SetWidth(),这几个函数的.有的是LPDISPATCH get_Columns();和void put_DefColWidth(float mewValue);
求救啊,列宽到底要怎么弄啊!!!!!!!!
回复

使用道具 举报

0

主题

21

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-7-6 20:15:01 | 显示全部楼层
m_datagrid.GetColumns()返回一个LPDISPATCH,这个LPDISPATCH应该有一个叫做GetItem的方法,返回类型也是LPDISPATCH。这个GetItem返回的LPDISPATCH应该有一个叫做SetWidth的方法。
不过你自己生成CDataGrid的时候应该也生成这些LPDISPATCH的封装类的,就像你生成CDataGrid类一样。
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-13 11:30:01 | 显示全部楼层
DataGrid绑定到一个DataView后,由DataGrid.TableStyles中的DataGridTableStyle 对象的集合来控制这个DataView的哪些列要显示,列的宽度多少,列标头的文本是什么等等。确省的DataGrid.TableStyles中不包含任何对象,这时DataGrid将会按照DataView列的顺序将所有的列都显示出来。一般应用中都会设置TableStyles来控制显示的内容及格式。

新建一个TableStyle,将此TableStyle.MappingName属性对应到这个TableStyle要控制的那个DataTable的名字:
DataGridTableStyle myTableStyle = new DataGridTableStyle();
myTableStyle.MappingName = "myDateTable";

再建立几个DataGridColumnStyle,分别用来控制将要显示的几个列
将这几个DataGridColumnStyle添加到TableStyle中
最后将TableStyle添加到DataGrid中
将 TableStyle添加到DataGrid后,再绑定数据源


回复

使用道具 举报

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-7-16 15:00:01 | 显示全部楼层
会飞啊 ( ) 信誉:100
DataGrid绑定到一个DataView后,由DataGrid.TableStyles中的DataGridTableStyle 对象的集合来控制这个DataView的哪些列要显示,列的宽度多少,列标头的文本是什么等等。确省的DataGrid.TableStyles中不包含任何对象,这时DataGrid将会按照DataView列的顺序将所有的列都显示出来。一般应用中都会设置TableStyles来控制显示的内容及格式。
---------------------------------------------------------------

楼上的,我不太明白你的意思,我在DataGrid的类中找不到你说的TableStyles和DataGridTableSytle对象,不过还是谢谢你.
还有二楼的,在.NET中没有你说的这几个函数的.
回复

使用道具 举报

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-7-16 15:30:01 | 显示全部楼层
可能我没有说清楚,使用DataGrid控件,自动生成的只有CDataGrid类,没有其它的类
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-17 00:30:01 | 显示全部楼层
// dataGrid1
                        //
                        this->dataGrid1->AlternatingBackColor = System::Drawing::SystemColors::InactiveCaption;
                        this->dataGrid1->Anchor = (System::Windows::Forms::AnchorStyles)(((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)
                                | System::Windows::Forms::AnchorStyles::Left)
                                | System::Windows::Forms::AnchorStyles::Right);
                        this->dataGrid1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle;
                        this->dataGrid1->DataMember = S"";
                        this->dataGrid1->HeaderForeColor = System::Drawing::SystemColors::ControlText;
                        this->dataGrid1->ImeMode = System::Windows::Forms::ImeMode::NoControl;
                        this->dataGrid1->Location = System::Drawing::Point(10, 7);
                        this->dataGrid1->Name = S"dataGrid1";
                        this->dataGrid1->ReadOnly = true;
                        this->dataGrid1->RightToLeft = System::Windows::Forms::RightToLeft::No;
                        this->dataGrid1->Size = System::Drawing::Size(464, 456);
                        this->dataGrid1->TabIndex = 24;
                        System::Windows::Forms::DataGridTableStyle* __mcTemp__1[] = new System::Windows::Forms::DataGridTableStyle*[1];
                        __mcTemp__1[0] = this->dataGridTableStyle1;
                        this->dataGrid1->TableStyles->AddRange(__mcTemp__1);
                        this->dataGrid1->CurrentCellChanged += new System::EventHandler(this, on_selcell);
                        //
                        // dataGridTableStyle1
                        //
                        this->dataGridTableStyle1->AlternatingBackColor = System::Drawing::Color::DarkKhaki;
                        this->dataGridTableStyle1->DataGrid = this->dataGrid1;
                        System::Windows::Forms::DataGridColumnStyle* __mcTemp__2[] = new System::Windows::Forms::DataGridColumnStyle*[6];
                        __mcTemp__2[0] = this->dataGridTextBoxColumn1;
                        __mcTemp__2[1] = this->dataGridTextBoxColumn2;
                        __mcTemp__2[2] = this->dataGridTextBoxColumn3;
                        __mcTemp__2[3] = this->dataGridTextBoxColumn4;
                        __mcTemp__2[4] = this->dataGridTextBoxColumn5;
                        __mcTemp__2[5] = this->dataGridTextBoxColumn6;
                        this->dataGridTableStyle1->GridColumnStyles->AddRange(__mcTemp__2);
                        this->dataGridTableStyle1->HeaderForeColor = System::Drawing::SystemColors::ControlText;
                        this->dataGridTableStyle1->MappingName = S"table1";
                        this->dataGridTableStyle1->ReadOnly = true;
                        //
                        // dataGridTextBoxColumn1
                        //
                        this->dataGridTextBoxColumn1->Alignment = System::Windows::Forms::HorizontalAlignment::Right;
                        this->dataGridTextBoxColumn1->Format = S"";
                        this->dataGridTextBoxColumn1->FormatInfo = 0;
                        this->dataGridTextBoxColumn1->HeaderText = S"课程号";
                        this->dataGridTextBoxColumn1->MappingName = S"courseno";
                        this->dataGridTextBoxColumn1->ReadOnly = true;
                        this->dataGridTextBoxColumn1->Width = 75;
                        //
                        // dataGridTextBoxColumn2
                        //
                        this->dataGridTextBoxColumn2->Alignment = System::Windows::Forms::HorizontalAlignment::Center;
                        this->dataGridTextBoxColumn2->Format = S"";
                        this->dataGridTextBoxColumn2->FormatInfo = 0;
                        this->dataGridTextBoxColumn2->HeaderText = S"课程名";
                        this->dataGridTextBoxColumn2->MappingName = S"coursename";
                        this->dataGridTextBoxColumn2->ReadOnly = true;
                        this->dataGridTextBoxColumn2->Width = 150;
                        //
                        // dataGridTextBoxColumn3
                        //
                        this->dataGridTextBoxColumn3->Alignment = System::Windows::Forms::HorizontalAlignment::Center;
                        this->dataGridTextBoxColumn3->Format = S"";
                        this->dataGridTextBoxColumn3->FormatInfo = 0;
                        this->dataGridTextBoxColumn3->HeaderText = S"课程类型";
                        this->dataGridTextBoxColumn3->MappingName = S"coursetype";
                        this->dataGridTextBoxColumn3->ReadOnly = true;
                        this->dataGridTextBoxColumn3->Width = 75;
                        //
                        // dataGridTextBoxColumn4
                        //
                        this->dataGridTextBoxColumn4->Alignment = System::Windows::Forms::HorizontalAlignment::Center;
                        this->dataGridTextBoxColumn4->Format = S"";
                        this->dataGridTextBoxColumn4->FormatInfo = 0;
                        this->dataGridTextBoxColumn4->HeaderText = S"开课学期";
                        this->dataGridTextBoxColumn4->MappingName = S"openterm";
                        this->dataGridTextBoxColumn4->ReadOnly = true;
                        this->dataGridTextBoxColumn4->Width = 75;
                        //
                        // dataGridTextBoxColumn5
                        //
                        this->dataGridTextBoxColumn5->Alignment = System::Windows::Forms::HorizontalAlignment::Center;
                        this->dataGridTextBoxColumn5->Format = S"";
                        this->dataGridTextBoxColumn5->FormatInfo = 0;
                        this->dataGridTextBoxColumn5->HeaderText = S"课时数";
                        this->dataGridTextBoxColumn5->MappingName = S"coursehours";
                        this->dataGridTextBoxColumn5->ReadOnly = true;
                        this->dataGridTextBoxColumn5->Width = 50;
                        //
                        // dataGridTextBoxColumn6
                        //
                        this->dataGridTextBoxColumn6->Alignment = System::Windows::Forms::HorizontalAlignment::Center;
                        this->dataGridTextBoxColumn6->Format = S"";
                        this->dataGridTextBoxColumn6->FormatInfo = 0;
                        this->dataGridTextBoxColumn6->HeaderText = S"学分";
                        this->dataGridTextBoxColumn6->MappingName = S"credit";
                        this->dataGridTextBoxColumn6->ReadOnly = true;
                        this->dataGridTextBoxColumn6->Width = 50;
回复

使用道具 举报

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-7-17 19:30:01 | 显示全部楼层
非常抱歉让  会飞啊 误会了.
我说的DataGrid是ActireX控件,它是VB6.0的ActireX控件
不是.NET Framework组件的DataGrid
引起的不便非常抱歉
请问谁知道如题目的处理方法,谢谢
回复

使用道具 举报

0

主题

21

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-7-18 11:15:01 | 显示全部楼层
你可以从OCX内建的type library生成MFC类
http://support.microsoft.com/kb/140616
回复

使用道具 举报

1

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
 楼主| 发表于 2020-8-8 08:30:01 | 显示全部楼层
自己去找了个VC自动生成的类,解决问题。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-9-6 22:00:01 | 显示全部楼层
楼主解决问题了么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表