【发布时间】:2020-04-27 05:24:07
【问题描述】:
我有一个非常简单的应用程序,其 DataGridView 已将 bindingSource 分配给其 DataSource 属性。 bindingSource 是一个 BindingSource 类型,它有一个 Data 分配给它的 DataSource 属性。数据只有一个属性‘string[] files’。问题是当我尝试选择要显示的列时,使用可视化设计器时,“选定的列”是空的。为什么? 我无法附加 Visual Studio 2017 创建的小项目的 zip 文件,所以我提供了代码:
namespace WindowsFormsAppTest
{
class Data
{
private string[] files;
public string[] Files { get => files; set => files = value; }
}
}
using System;
using System.Windows.Forms;
namespace WindowsFormsAppTest
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.
</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region "business object"
#endregion
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.dataGridView = new System.Windows.Forms.DataGridView();
this.bindingSource = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource)).BeginInit();
this.SuspendLayout();
//
// dataGridView
//
this.dataGridView.AutoGenerateColumns = false;
this.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView.DataSource = this.bindingSource;
this.dataGridView.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView.Location = new System.Drawing.Point(0, 0);
this.dataGridView.Name = "dataGridView";
this.dataGridView.Size = new System.Drawing.Size(800, 450);
this.dataGridView.TabIndex = 1;
//
// bindingSource
//
this.bindingSource.DataSource = typeof(WindowsFormsAppTest.Data);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.dataGridView);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bindingSource)).EndInit();
this.ResumeLayout(false);
}
#endregion
private DataGridView dataGridView;
private BindingSource bindingSource;
}
}
问候,
贾努斯
【问题讨论】:
-
您没有显示任何填充数组的代码..?另外,您不需要将数组指定为绑定源吗?时间不早了,可能有点累了。
-
我什至没有得到阵列的人口。我的 dataGridView 甚至没有显示表格。这就是可视化设计器显示一个空的“选定列”属性。我会在这里插入一张图片,但我现在不知道如何或是否可能。
标签: c# datagridview combobox