【发布时间】:2020-09-25 17:07:38
【问题描述】:
我正在使用 DataGridView 来显示字符串值,它使用字符串包装类、BindingSource 和 BindingList。
但是,在启动应用程序时,这些值仅在单击行后才可见。我已经尝试查看所有可能的样式属性以查看初始黑色的来源,但没有成功。
初步外观:
点击后(有趣的颜色试图了解哪种样式做了什么)或最小化和最大化窗口:
表单代码(这里已经尝试过一些变种,最终版本不会是这样的):
private BindingSource dataSource;
private BindingList<StringValue> bindingList;
private List<StringValue> list = new List<StringValue>();
public MainForm()
{
InitializeComponent();
grdCodes.AutoGenerateColumns = false;
bindingList = new BindingList<StringValue>(list);
dataSource = new BindingSource(bindingList, null);
grdCodes.DataSource = dataSource;
// Load += MainForm_Load;
x();
}
//private void MainForm_Load(object sender, EventArgs e)
//{
// grdSupiCodes.AutoGenerateColumns = false;
// bindingList = new BindingList<StringValue>(list);
// dataSource = new BindingSource(bindingList, null);
// grdSupiCodes.DataSource = dataSource;
//}
private void x()
{
list.Add(new StringValue("AAAAAAAAAAAA"));
list.Add(new StringValue("BBBBBBBBBBBB"));
list.Add(new StringValue("CCCCCCCCCCCC"));
// none of the below work:
grdCodes.ResetBindings();
// grdCodes.Update();
// grdCodes.Refresh();
// grdCodes.DataSource = null;
// grdCodes.DataSource = dataSource;
}
我的问题是,如何让应用启动时已经在网格中显示值?如果有帮助,我可以发布设计器代码,但没有定义黑色(表单背景为 DarkGrey,在网格下可见)。
【问题讨论】:
-
在构造函数中,在创建
BindingList之前添加list项。所以将x();方法向上移动。 -
@dr.null 这不起作用。当我移动它们出现的窗口时,这些值在那里但不可见。这是一些晦涩难懂的重绘问题。
标签: c# winforms datagridview bindingsource bindinglist