【发布时间】:2016-06-23 10:42:15
【问题描述】:
我正在我的 windows ce 手持设备上使用 compact framework 2.0 开发一个 c# 应用程序。 我有一个像下面这样的网格
name location
----------------------
John US
Flex UK
我已经使用 datagrid 来形成网格。注意: DataGrid(new System.Windows.Forms.DataGrid()) 不是 DataGridView 。 网格上方有一个文本框。如果用户在文本框中键入 uk,我必须更改数据网格中第二行的颜色。 我如何实现它??
private System.Windows.Forms.DataGrid scnDataGrd = new System.Windows.Forms.DataGrid();
我添加了一个名为 status 的列。我想在那里显示一个图像。如果文本框中的文本匹配。
为表格添加列并基于csv填充值:
if (data.StartsWith("Coloumns"))
data = data.Substring(index + 1, data.Length - (index + 1));
data = data.Trim();
string[] values = data.Split(',');
// Add the index on the column on which data is stored in csv
List<int> csvIndex = new List<int>();
for (int i = 0; i < values.Length; i++)
{
values[i] = values[i].Trim();
if (values[i] != "Status")
csvIndex.Add(csvHeaders.IndexOf(values[i]));
}
rfidindex = (csvHeaders.IndexOf("RFID") == -1) ? csvHeaders.IndexOf("rfid") : csvHeaders.IndexOf("RFID");
//Image myImage = new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream("search.png"));
//ImageConverter imageConverter = new ImageConverter();
Image img = AssetGatherMobileQuickTraQ.Properties.Resources.search;
//Properties.Resources.my_image;
string csvdata = strRdr.ReadToEnd();
csvdata = csvdata.Replace('\r', ' ');
string[] tagDets = csvdata.Split(new char[] { '\n' });
csvItems = new Hashtable();
DataTable dataTable1 = (DataTable)scnDataGrd.DataSource;
for (int i = 0; i < tagDets.Length; i++)
{
string[] individTagDet = tagDets[i].Split(new char[] { ',' });
if (individTagDet.Length <= 1)
break;
csvItems.Add(individTagDet[rfidindex].Replace("\"", string.Empty).Trim(), individTagDet);
DataRow row = dataTable1.NewRow();
row.BeginEdit();
//System.Drawing.Image imgTest = System.Drawing.Image. FromFile("C:\\Test.jpg");
//System.Drawing.Image img = System.Drawing.Image.ReferenceEquals
//dataTable1.Columns
Bitmap image1 = new System.Drawing.Bitmap(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\search.png");
//scnDataGrd.Dara
row[0] = image1;
//DataGrid
for (int j = 0; j < 3; j++)
{
row[j+1] = individTagDet[csvIndex[j]].Replace("\"",string.Empty).Trim();
}
//scnDataGrd.TableStyles
csvRfidList.Add(individTagDet[rfidindex].Replace("\"", string.Empty).Trim());
missingTagList.Add(individTagDet[rfidindex].Replace("\"", string.Empty).Trim());
row.EndEdit();
dataTable1.Rows.Add(row);
scnDataGrd.DataSource = dataTable1;
}
如果文本匹配到这里:
DataTable dataTable = (DataTable)scnDataGrd.DataSource;
int index1 = -1;
bool found = false;
DataGridTableStyle ts = new DataGridTableStyle();
foreach (DataRow dr in dataTable.Rows)
{
index1++;
if (dr[tableColIndex].ToString() == textValue)
{
scnDataGrd.Select(index1);
scnDataGrd.SelectionForeColor = Color.Red;
break;
}
else {
dr[0] = "Not Found";
}
}
在状态栏中,显示为 System.Data.Bitmap 而不是图像
【问题讨论】:
-
你想实现什么?勾选图片或复选框?
-
我需要实现图片
标签: c# datagrid compact-framework windows-ce