System.argumentoutofrangeException: ‘indeks berada di luar jangkauan. Harus non-negatif dan kurang dari ukuran koleksi. Nama parameter: indeks’

pemrograman


private void ItemGV_CellClick(object sender, DataGridViewCellEventArgs e)
       {
           if (e.RowIndex >= 0)
           {
               txtItemnum.Text = ItemGV.SelectedRows[0].Cells[0].Value.ToString();
               txtItemname.Text = ItemGV.SelectedRows[0].Cells[1].Value.ToString();
               comboCat.SelectedItem = ItemGV.SelectedRows[0].Cells[2].Value.ToString();
               txtitemprice.Text = ItemGV.SelectedRows[0].Cells[3].Value.ToString();
               //txtemail.Text = UserGV.SelectedRows[0].Cells[4].Value.ToString();
           }

Apa yang saya coba:

pada acara klik Saya sedang menulis kode musuh, dapatkan nilai gride ke kotak teks

Solusi 1

Kami tidak dapat memberi tahu Anda, “Itu ada di sana!” karena kami memerlukan kode Anda berjalan bersama data Anda untuk mengetahui secara pasti di mana hal itu terjadi, dan nilai apa yang menyebabkan masalah – dan Anda memerlukannya sebelum Anda dapat mulai melihat Mengapa itu salah!

Yang bisa kami lakukan hanyalah menjelaskan mengapa hal itu menimbulkan masalah. Array di C# adalah urutan nilai yang diakses melalui indeks: dan indeks tersebut harus berada di antara nol dan “jumlah nilai dikurangi satu”. Jadi jika Anda memiliki array yang berisi lima bilangan bulat misalnya, maka indeks yang valid adalah 0, 1, 2, 3, dan 4. Semua indeks lainnya akan memberikan kesalahan karena nilai yang Anda coba tangani tidak ada.
Jadi Anda bisa mengatakan:

C#
i = arr[0];
i = arr[1];
i = arr[2];
i = arr[3];
i = arr[4];

Tapi tidak:

C#
i = arr[-1];
i = arr[5];
i = arr[666];

Dan kode Anda menggunakan beberapa array, yang mana saja bisa menjadi sumber masalahnya.

Jadi, itu terserah Anda.
Untungnya, Anda memiliki alat yang dapat membantu Anda mengetahui apa yang sedang terjadi: debugger. Jika Anda tidak tahu cara menggunakannya, Google cepat untuk “Visual Studio debugger” akan memberi Anda info yang Anda butuhkan.

Letakkan breakpoint pada baris pertama fungsi, dan jalankan kode Anda melalui debugger. Kemudian lihat kode Anda, dan data Anda, lalu cari tahu apa yang harus terjadi secara manual. Kemudian satu langkah setiap baris untuk memeriksa apakah apa yang Anda harapkan terjadi adalah apa yang terjadi. Jika tidak, saat itulah Anda mempunyai masalah, dan Anda dapat menelusuri kembali (atau menjalankannya lagi dan melihat lebih dekat) untuk mencari tahu alasannya.

Diperkirakan, koleksi SelectedItems kosong, atau jumlah kolom di grid tidak mencukupi, namun Anda memerlukan kode yang dijalankan dengan data Anda untuk mengetahuinya.

Maaf, kami tidak dapat melakukannya untuk Anda – saatnya Anda mempelajari keterampilan baru (dan sangat, sangat berguna): debugging!

コメント

タイトルとURLをコピーしました