none
抓不到ListView.SelectedItems[0].Tag RRS feed

  • 問題

  • 我想把ListView.SelectedItems[0].Tag放到一個叫作id的int資料型態整數。後來我去Debug,發現Tag的值竟然是Null。程式碼如下:

    int id = (int)this.listView.SelectedItems[0].Tag;

    結果他跑出「NullReferenceException未處理」,說「並未將物件參考設定為物件的執行個體。」那是什麼意思我聽不懂阿

    PS: 此程式碼是寫在ToolStripMenuItem的Click事件中。

    謝謝!!!!!!




    2014年9月18日 上午 06:32

解答

所有回覆

  • 1、你必须是选中了。

    2、条件判断:

    if (this.listView.SelectedItems!=null && this.listView.SelectedItems.Count>0)
    {
        //做你的事情
    }

    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2014年9月18日 上午 06:54

  • 我有點擊ToolStripMenuItem,所以處發Click事件

    但是程式突然終止並跳到那行程式碼

    說那行程式碼有問題

    問題就是抓不到Tag

    我是看別人的教學影片

    但是那個人沒有加條件判斷……

    2014年9月18日 上午 07:14
  • 你確定你在點擊之前已經選定了ListView中的某些項了嗎?

    另外你是怎麼給Tag賦值的?給出你全部的代碼,謝謝。


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2014年9月18日 上午 07:22
  • 我有點擊某個項

    我沒有去設定Tag的值

    我就直接把Tag的值付給id了

    但是Tag的值是Null

    我沒去設定,是Null也難怪,不過教學影片的那個人就是這樣打的……

    你所指的全部代碼是指這個事件還是整個程式的代碼?

    如果是整個程式的代碼的話

    整個程式是使用ListView來取得Sql Server的資料

    然後可以擁有增加、修改、刪除的功能

    如果直接貼的話程式碼會很多……

    而事件的話,是使用者對著某項目按右鍵

    然後會跑出選項,其中一個選項就是刪除

    點了就會觸法此事件

    會把資料從Sql刪掉,然後再讀一次資料

    在顯示到ListView上

    以下是程式碼:

    int selectCount = lvBook.SelectedItems.Count;
    if (selectCount == 0)
     {
      MessageBox.Show("請選擇一項");
      return;
     }
    id = (int)this.lvBook.SelectedItems[0].Tag;
    string sql = string.Format("DELETE FROM Book WHERE id = {0}", id);
    SqlCommand cmd = new SqlCommand(sql, DBHelper.connection);
    DBHelper.connection.Open();
    int ret = cmd.ExecuteNonQuery();
    DBHelper.connection.Close();
    if (ret > 0) {
      GetBooks();
      MessageBox.Show("刪除成功");
     }

    2014年9月18日 上午 08:07
  • 我知道問題了

    是教學影片的那個人有剪接影片

    但是他剪到一些部分,所以有些程式碼沒錄到

    不過還是謝謝你熱心的回答我

    2014年9月18日 上午 11:28