我有一个DataGridView,我从LINQ查询填充.其中一列是FK,所以我添加了一个ComboBox列来显示这个字段,显示正常.
我遇到的问题是它不会让我更改ComboBox的值,因为它的行为就像它被锁定一样.我检查了DGV和Column的ReadOnly属性,两者都是假的.
任何人都可以解释我所缺少的东西吗?
填充DGV的代码如下:
private void PopulateForm()
{
DBDataContext db = new DBDataContext();
var eventTypes =
from evt in db.EVENT_TYPEs
.Where(a => a.Omit == false)
.OrderBy(a => a.EventType)
select new
{
EventTypeID = evt.EventTypeID,
EventType = evt.EventType,
UpdateToStatusID = evt.UpdateToStatusID,
AttachmentAllowedYn = evt.AttachmentAllowedYn,
AttachmentRequiredYn = evt.AttachmentRequiredYn,
CommentRequiredYn = evt.CommentRequiredYn
};
var statuses =
from sts in db.STATUS
.Where(a => a.Omit == false)
select new
{
StatusID = sts.StatusID,
Status = sts.TechreqStatus
};
DataGridView dgv = this.dgvEventTypes;
DataGridViewColumn col;
dgv.AutoGenerateColumns = …Run Code Online (Sandbox Code Playgroud) 我需要一种方法来创建TimeSpan时间选择器列,允许超过24小时.现在,我得到了一个从DateTimePicker派生的TimePicker,但在24之后,它又回到了零.我没有找到改变它的行为的方法.
请帮忙.
谢谢!
我有一个预定义的DataGridView,我需要从DataTable添加行而不需要数据绑定.我试图以DataGridView.Rows.Add()编程方式使用该方法,但我不知道DataTable的列名称.DataTable中的列与DataGridView的顺序相同,但如何在不知道列名的情况下将它们添加到DataGridView中?
我正在开发一个项目,我想根据dataGridView中的选择加载信息.我在表单的设计器中创建了一个dataGridView,我添加了这一行:
this.dataGridView1.SelectionChanged += methodToBeCalled;
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我有一个讨厌的问题.大多数时候,当我开始申请时,选择一行后没有任何事情发生.然后,当我查看我的代码时,代码行完全消失了.
首先我认为有人提交了一些代码,但即使我不更新它也会消失.
消失的代码可能是什么原因(错误/视觉工作室设计)?我该怎么办呢?
我正在动态创建dgv,我必须在其单元格单击上创建一个事件,我该怎么做?现在,当我创建cellclick事件时,它什么也不会触发。
制作dgv的代码:
dataGridView2 = new DataGridView();
DataGridViewColumn col1 = new DataGridViewImageColumn
{
ImageLayout = DataGridViewImageCellLayout.Stretch
};
DataGridViewColumn col2 = new DataGridViewImageColumn
{
ImageLayout = DataGridViewImageCellLayout.Stretch
};
DataGridViewColumn col3 = new DataGridViewTextBoxColumn();
DataGridViewColumn col4 = new DataGridViewLinkColumn();
DataGridViewColumn col5 = new DataGridViewTextBoxColumn();
DataGridViewColumn col6 = new DataGridViewTextBoxColumn();
DataGridViewColumn col7 = new DataGridViewTextBoxColumn();
col1.HeaderText = "TPM Image";
col1.Name = "image_tpm";
col1.Width = 60;
col2.HeaderText = "Find Image";
col2.Name = "image_thefind";
col2.Width = 60;
col3.HeaderText = "Name";
col3.Name = "name";
col3.Width = 150; …Run Code Online (Sandbox Code Playgroud) 我想使用c#在Windows窗体中自定义我的datagridviews.我想要做的是使用我制作的渐变绘制datagrid标题:
public void Colorear_Barra_abajo(object sender, PaintEventArgs e)
{
Rectangle r = new Rectangle(0,0, panel_Borde_abajo.Width, panel_Borde_abajo.Height);
if (r.Width > 0 && r.Height > 0)
{
Color c1 = Color.FromArgb(255, 54, 54, 54);
Color c2 = Color.FromArgb(255, 62, 62, 62);
Color c3 = Color.FromArgb(255, 98, 98, 98);
LinearGradientBrush br = new LinearGradientBrush(r, c1, c3, 90, true);
ColorBlend cb = new ColorBlend();
cb.Positions = new[] { 0, (float)0.5, 1 };
cb.Colors = new[] { c1, c2 , c3 };
br.InterpolationColors = cb;
// …Run Code Online (Sandbox Code Playgroud) 我已经以编程方式创建了一个datagridview.因此,没有绑定源或数据源可以将Datagridview和Binidgnavigator连接到它们.有没有其他方法可以将它们相互连接起来.这是我的datafridview代码
帮我把它连接到bindingNavigator
private void Fill()
{
try
{
if (dataGridView1 != null)
{
dataGridView1.ColumnCount = 11;
dataGridView1.Columns[0].HeaderText = Resources.Form1_Fill_ID;
dataGridView1.Columns[1].HeaderText = Resources.Form1_Fill_Family;
dataGridView1.Columns[2].HeaderText = Resources.Form1_Fill_Cellphone;
dataGridView1.Columns[3].HeaderText = Resources.Form1_Fill_Phone1;
dataGridView1.Columns[4].HeaderText = Resources.Form1_Fill_Phone2;
dataGridView1.Columns[5].HeaderText = Resources.Form1_Fill_Phone3;
dataGridView1.Columns[6].HeaderText = Resources.Form1_Fill_Fax;
dataGridView1.Columns[7].HeaderText = Resources.Form1_Fill_CompanyName;
dataGridView1.Columns[8].HeaderText = Resources.Form1_Fill_Agency;
dataGridView1.Columns[9].HeaderText = Resources.Form1_Fill_Brands;
dataGridView1.Columns[10].HeaderText = Resources.Form1_Fill_Address;
dataGridView1.Columns[0].Name = Resources.Form1_Fill_ID;
dataGridView1.Columns[1].Name = Resources.Form1_Fill_Family;
dataGridView1.Columns[2].Name = Resources.Form1_Fill_Cellphone;
dataGridView1.Columns[3].Name = Resources.Form1_Fill_Phone1;
dataGridView1.Columns[4].Name = Resources.Form1_Fill_Phone2;
dataGridView1.Columns[5].Name = Resources.Form1_Fill_Phone3;
dataGridView1.Columns[6].Name = Resources.Form1_Fill_Fax;
dataGridView1.Columns[7].Name = Resources.Form1_Fill_CompanyName;
dataGridView1.Columns[8].Name = Resources.Form1_Fill_Agency;
dataGridView1.Columns[9].Name = Resources.Form1_Fill_Brands;
dataGridView1.Columns[10].Name …Run Code Online (Sandbox Code Playgroud) 我在Windows Forms .NET 3.5中有以下内容
它适用于记录小于10,000的csv,但对于30,000以上的记录则较慢.输入csv文件可以在1到1,00,000条记录之间进行任何记录
目前使用的代码:
/// <summary>
/// This will import file to the collection object
/// </summary>
private bool ImportFile()
{
try
{
String fName;
String textLine = string.Empty;
String[] splitLine;
// clear the grid view
accountsDataGridView.Rows.Clear();
fName = openFileDialog1.FileName;
if (System.IO.File.Exists(fName))
{
System.IO.StreamReader objReader = new System.IO.StreamReader(fName);
do
{
textLine = objReader.ReadLine();
if (textLine != "")
{
splitLine = textLine.Split(',');
if (splitLine[0] != "" || splitLine[1] != "")
{
accountsDataGridView.Rows.Add(splitLine);
}
}
} while (objReader.Peek() != -1); …Run Code Online (Sandbox Code Playgroud) 我有一个Winform应用程序,我对它的作用感到满意.我想每15分钟从数据库中检索最新数据并将其显示在DataGridView中.
我添加了一个Timer类.一旦经过15分钟,我就可以调用检索并显示数据的方法.我收到了错误(请参见随附的屏幕截图).
我在这做错了什么?
以下是我的代码:
public partial class Form1 : Form
{
System.Timers.Timer aTimer;
public Form1()
{
InitializeComponent();
StartTimer();
}
private void RetrieveData()
{
DataTable table = new DataTable();
table.Rows.Add(woStatus, dateReceived, dateApprovedFormatted, binNo, ppNo, woNo, daysDifference);
dataGridViewMain.DataSource = table;
dataGridViewMain.Sort(dataGridViewMain.Columns["Days in the shop"], ListSortDirection.Descending);
}
private void StartTimer()
{
aTimer = new System.Timers.Timer(10000); // 10secs
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
RetrieveData();
aTimer.Start();
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
aTimer.Stop();
aTimer.Dispose();
StartTimer();
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的asp.net页面上放置了一个gridview,并使用sql调用来获取数据源.在sql调用中,它带来了所有字段(名称,地址,电话,类型)的数据在gridview上,在编辑期间,有2个字段(电话,类型)需要是模板字段而不是绑定字段,并且项目模板中的文本框或标签(以较小者为准).
当我运行代码时,数据网格完成并填写 - 减去手机或类型字段(模板字段)的信息.如何对字段进行数据绑定,以便正确显示信息.我已经包含了我的代码.
任何帮助将不胜感激.提前致谢!
网格视图:
<asp:GridView ID="gvMTM" runat="server" AllowPaging="True" DataKeyNames="MTMID"
AutoGenerateColumns="False" AutoGenerateEditButton="True"
OnRowEditing="gvMTM_RowEditing"
OnRowUpdating="gvMTM_UpdateRowEditing"
OnRowCancelingEdit="gvMTM_CancelRowEditing" >
<Columns>
<asp:BoundField DataField="MTMID" HeaderText="ID" />
<asp:BoundField DataField="MTMName" HeaderText="Name" />
<asp:BoundField DataField="Add1" HeaderText="Add1" />
<asp:BoundField DataField="Add2" HeaderText="Add2" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:BoundField DataField="ST" HeaderText="ST" />
<asp:BoundField DataField="Zip" HeaderText="Zip" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:TemplateField HeaderText="Phone#">
<EditItemTemplate>
<asp:TextBox ID="txtPhoneEdit" runat="server"></asp:TextBox>
<asp:MaskedEditExtender ID="TemptxtPhone_MaskedEditExtender" runat="server"
CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder=""
CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder=""
CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True"
TargetControlID="TemptxtPhone">
</asp:MaskedEditExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="txtPhoneRead" runat="server" BorderStyle="None"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="RR">
<EditItemTemplate> …Run Code Online (Sandbox Code Playgroud)