我有一个带DataGridView控件的WinForms应用程序.我的控件有五列(比如"姓名","地址","电话"等)
我对默认列宽不满意.我希望能更好地控制列外观.我想要的是能够做到以下之一:
请建议 - 使用哪个属性以及如何使用.
我正在使用带有对象数据绑定的DataGridView来显示有关系统中日志记录实体的信息,这些信息是通过SOAP从远程服务检索的.其中一列称为"上次操作",表示实体最后一次记录消息.这是一个System.DateTime价值.当我读取SOAP响应(下面的示例)时,他的时间戳显然包含所有信息,最多包含第二个分数.
<LoggingEntity>
<host>marty86ce</host>
<process>10148</process>
<logger>http_core</logger>
<appName>httpd</appName>
<ffda>true</ffda>
<lastAction>2010-10-27T12:00:19.5117509Z</lastAction>
<lastHeartbeat>0001-01-01T00:00:00</lastHeartbeat>
<channelId>em_9BA2A2B4D0B6E66</channelId>
<ffdaChannelId>em_E7C8D1D4DE8EEB9</ffdaChannelId>
</LoggingEntity>
Run Code Online (Sandbox Code Playgroud)
当我在桌子上显示它时,我可以读取分钟
当我按下刷新按钮时,我使用以下代码进行数据绑定
public void RefreshEntities()
{
IEntityManagement management = EntityPlugin.GetProxy();
LoggingEntity[] result = management.FindLoggingEntities(new TemplateQuery { ffdaSpecified = true, ffda = true }); //Remote invocation
Invoke(new MethodInvoker(delegate { gridEntities.DataSource = result; })); //THIS does the data binding from the array
Invoke(new MethodInvoker(delegate { btnRefresh.Enabled = true; }));
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何控制数据绑定值的列格式.我认为格式dd/MM/yyyy hh:mm来自我的系统设置.如何以编程方式覆盖格式设置?
先感谢您
用于Logbus-ng开源项目的Subversion(FFDAGui程序)的完整解决方案代码.
我有一个绑定到DataTable的DataGridView.DataTable是从数据库查询填充的.该表包含一个名为BestBefore的列.BestBefore是格式化为字符串的日期(SQLite没有日期类型).
我想以编程方式向DataGridView添加一个名为Status的新列.如果BestBefore小于当前日期,则Status值应设置为OK,否则Status值应设置为NOT OK.
我是Winforms的新手,所以我们非常感谢一些示例代码.
更新:
我认为DataColumn.Expression可以进行简单的计算,例如将列的整数值乘以另一个值,但是如何做我需要做的事情呢?也就是说,计算nowBefore列中now和date(字符串格式化)之间的差异,以确定为新状态列提供的值.示例代码将不胜感激.
我有一个datagridview是一个完整的行选择.如果点击行中的哪个单元格,我将如何仅从某个单元格中获取数据,因为它突出显示整行.
我在Windows窗体上有一个DataGridView(Selectionmode:FullRowSelect)以及一些文本框,所以我想要做的是每当用户选择一行(可能是click或double_click)时,该行的内容必须显示在文本中箱,
我试过这个代码
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show("CEll Double_Click event calls");
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
textBox5.Text = row.Cells[1].Value;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
textBox5.Text = dataGridView1.Rows[1].Cells[1].Value.ToString();// row.Cells[1].Value;
}
Run Code Online (Sandbox Code Playgroud)
还有很多其他的文本框,但主要的问题是没有一个事件似乎被触发,我应该使用什么事件这样做,或者是否有一些我可能设置错误的datagrid属性?任何帮助,将不胜感激...:(
我有一个DataGridView.一些单元从串口接收数据:我想将数据推入单元,并让它更新底层绑定对象.
我正在尝试这样的事情:
SetValueFromSerial (decimal newValue)
{
dataGridView.CurrentCell.Value = newValue;
}
Run Code Online (Sandbox Code Playgroud)
使用字符串没有帮助:
dataGridView.CurrentCell.Value = newValue.ToString ();
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我都没有在网格中看到任何内容,并且基础值没有变化.
我在谷歌搜索并在这里搜索,但我没有找到任何东西.(我可能错过了一些东西,也许是显而易见的东西,但我并不是完全懒惰.)
当孩子控件调整大小时,我发现了很多关于如何调整表单大小的问题,但我正在尝试做一些更简单的事情(也许这么简单的人甚至不会问它:|)
我想自动调整datagridview的宽度以填充表单的宽度.简单地将datagridview放在表单上后,在调整表单大小时,网格保持相同的大小.即使我使用将控件连接到表单边框的小恒定距离快照事件,也会发生这种情况.
我是否必须处理某些类型的form.resize事件,或者是否可以在VS中设置属性?
我有一个DataGridView绑定到DataTable(DataTable绑定到数据库).我需要一个补充DataRow到DataTable.我正在尝试使用以下代码:
dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();
for (int i = 0; i < 28; i++)
{
row[i] = i.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,DataGridView从未添加过新的行.请告诉我,如何修复我的代码?
先感谢您.
在winforms中,您需要单击组合框两次以正确激活它 - 第一次聚焦它,第二次实际获取下拉列表.
如何更改此行为以便在第一次单击时激活?
这适用于DATAGRIDVIEW组合框.