winforms DataGridView -绑定数据源后分别更改不同列的宽度

svujldwt  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(176)

我有一个使用数据源的基本数据网格,希望在其他列仍使用自动调整时设置特定列的宽度。
dataGridView代码:

$script:dataGridView1 = New-Object System.Windows.Forms.DataGridView;
$script:dataGridView1.Name = 'dataGridView1';
$script:dataGridView1.Size = '1235, 450';
$script:dataGridView1.RowTemplate.DefaultCellStyle.ForeColor = '#000088';
$script:dataGridView1.ReadOnly = $True;
$script:dataGridView1.AllowUserToDeleteRows = $False;
$script:dataGridView1.RowHeadersVisible = $False;
$script:dataGridView1.TabIndex = 3;
$script:dataGridView1.AutoSizeColumnsMode = 16;
$script:dataGridView1.AllowUserToAddRows = $False;
$script:dataGridView1.ColumnHeadersHeightSizeMode = 2;
$script:dataGridView1.Location = '13, 87';
$script:dataGridView1.AllowUserToOrderColumns = $True;
$script:dataGridView1.DataSource = $script:AWtable1;
$script:dataGridView1.Anchor = (4, 8, 1);
$script:dataGridView1.DataBindings.DefaultDataSourceUpdateMode = 0;

完整脚本:https://controlc.com/5359a6e5
使用此方法时,我会收到一个异常,提示“在此对象上找不到属性“AutoSizeMode/Width””。
我需要做哪些更改才能使其正常工作?C#代码也可以正常工作。

uqjltbpv

uqjltbpv1#

从错误消息中,我猜您在dataGridView1上没有预先创建的列。
您可以将dataGridView1.AutoGenerateColumns设置为false,并在通过列属性DataPropertyName将列绑定到特定DataSource列时自行创建和设置列样式
示例:https://stackoverflow.com/a/4907567/11409835
如果您希望dataGridView1.AutoGenerateColumns保持为true,则可以在dataGridView1自动创建并呈现其列之后更改列设置例如,可以在Form.Load事件中更改列属性
dataGridView1.AutoGenerateColumns在VS编辑器中不可见,因此如果要将其设置为false,必须通过代码来完成dataGridView1.AutoGenerateColumns仅在使用DataSource属性时才处于活动状态

相关问题