我想将小图像添加到listView的现有行。 ListView连接到SQLite DB。 当在listView中选择一行并单击按钮" Zakoncz"添加到SQLite DataBase值" 1"专栏" CzyZaznaczone"当这里有价值" 1" listView应该将图像添加到选定的行。 我的图像是在资源中,我可以使用它还是仅使用文件? 现在我的代码为数据库添加了一个值,但没有添加图像。
以下是代码:
SQLiteConnection con = new SQLiteConnection("data source=baza.db");
SQLiteDataAdapter ada = new SQLiteDataAdapter("select * from Przypominacz", con);
SQLiteCommand cmd = con.CreateCommand();
var index = this.listView1.SelectedIndices[0];
string zaznaczone = this.listView1.Items[index].SubItems[0].Text;
con.Open();
cmd.CommandText = "UPDATE Przypominacz SET CzyZakonczone=1 WHERE Nazwa='"+ zaznaczone + "'";
cmd.ExecuteNonQuery();
//dodanie ikonki do zakonczonego zadania
bool result = false;
string sql = "SELECT * FROM Przypominacz WHERE CzyZaznaczone='1'";
SQLiteDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
result = true;
}
reader.Close();
bool rezultat = result;
if(rezultat==true)
{
for (int i = listView1.SelectedItems.Count - 1; i >= 0; i--)
{
ImageList imageList = new ImageList();
imageList.Images.Add(Image.FromFile("D:\\C#\\Przypominacz2 — kopia (4)\\przypominacz\\przypominacz\\Resources\\checked.png"));
listView1.SmallImageList = imageList;
var listViewItem = listView1.Items.Add("Item with image");
}
}
现在看起来: Without img
但应该是这样的: With img
答案 0 :(得分:1)
您正在向现有列表添加新ListViewItem
,而不是更改所选列表。你可以这样做:
if(rezultat)
{
ImageList imageList = new ImageList();
imageList.Images.Add(Image.FromFile("D:\\C#\\Przypominacz2 — kopia (4)\\przypominacz\\przypominacz\\Resources\\checked.png"));
listView1.SmallImageList = imageList;
for (int i = 0; i < listView1.Items.Count; i++ )
{
if (listView1.Items[i].Selected)
listView1.Items[i].ImageIndex = 0;
}
}
要从资源中将图片添加到ImageList
,请查看this question