بل
بله داخل گرید ویو هست... اون چطور تشخیص میده ماروی چی کلیک کردیم؟ وکجا این دستور رو بنویسیم؟ توی فرمی که باید اطلاعات رو مثلا توی یک تکس باکس نمایش بدیم؟ یاتوی فرمی که گریدویو توشه؟
کلا هر سطری که در DataGridView فعال و انتخاب شده باشه، چه یک سطر و چه چند سطر در داخل SelectedRows مشخص میشه. SelectedRows برای همین طراحی شده. به محض اینکه سطر دیگه ای انتخاب بشه محتویات SelectedRows هم تغییر میکنه.
اگه فرمی که DataGridView داخلش هست رو باز نگه میدارید و نمیبندید، اشکالی نداره که در اون یکی فرم بهش ارجاع بدید ولی یکم دردسر کد نویسی داره، کلا بهتره این وسط یک متغیر public static رو واسطه کنید که مقدار رو داخل اون قرار بدید و اونم مهم نیست داخل کدوم فرم تعریف بشه.
من الان یک دکمه جدید اضافه کردم و این کد رو نوشتم اما کلا برنامم هنگ کرد و اجرا نمیشه...
دو تا کار رو باید حتما انجام بدید، یکی اینکه در DataGridView تون مشخصه SelectionMode رو روی FullRowSelect قرار بدید، یعنی رو هر سطری کلیک کرد کل سطر رو انتخاب کنه، نه فقط یک ستونش رو.
در ضمن همیشه باید در کدتون اول چک کنید که اصلا کاربر سطری رو انتخاب کرده یا نه. اگر سطری رو انتخاب نکرده باشه، SelectedRows.Count برابر 0 ئه و چیزی داخلش نیست.
قبل از اینکه این مورد رو چک کنید سراغ [SelectedRows[0 نروید.
کد:
if (dataGridView1.SelectedRows.Count > 0)
{
.
.
.
}