f_naderi
دوشنبه 12 مهر 1395, 17:51 عصر
سلام دوستان
دوستان من دیتاگرید رو به صورت معمولی صفحه بندی کردم یعنی یک دکمه بعدی و یک دکمه قبلی قرار دادم حالا چطور میتونم وقتی کاربر یک گزینه رو انتخاب کرد (چک باکس مربوطه اش را انتخاب کرد) بلافاصله به لیست انتخاب شده ها و وقتی اون گزینه رو از حالت انتخاب خارج کرد همون موقع از لیست انتخاب شده ها حذفش کنم.
دوستان ،من برای اینکه هر تغییری در دیتاگرید انجام میشه(یعنی وقتی چک باکس مربوط به هر رکورد زده میشه رکورد مربوطه اطلاعاتش نگهداری بشه) این کد رو در cellmouseup نوشتم ولی وقتی دکمه نمایش رو میزنم هر رکورد چند بار نمایش داده میشه ؟؟؟
private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) {
if (e.ColumnIndex == 0 && e.RowIndex > -1)
{
dataGridView1.CommitEdit(DataGridViewDataErrorCont exts.Commit);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[0].Value))
{
DataRow dr = dt_select.NewRow();
dr[0] = row.Cells[2].Value.ToString();
dt_select.Rows.Add(dr);
}
}
}
}
مشکل از کجاست آیا باید در رویداد دیگه ای بنویسم؟؟؟
کد صفحه بندی دیتاگرید
دکمه بعدی
try {
if (this.currentpageindex < this.Totalpage)
{
dataGridView1.Rows.Clear();
DataTable dt_rec = new DataTable();
DataColumn col1 = new DataColumn("Num_Question", typeof(string));
DataColumn col2 = new DataColumn("QTs_Name", typeof(string));
DataColumn col3 = new DataColumn("Correct_Ans", typeof(string));
DataColumn col4 = new DataColumn("Base_N", typeof(string));
DataColumn col5 = new DataColumn("Branch", typeof(string));
DataColumn col6 = new DataColumn("L_Code", typeof(string));
DataColumn col7 = new DataColumn("Chapter_N", typeof(string));
DataColumn col8 = new DataColumn("Section_N", typeof(string));
DataColumn col9 = new DataColumn("Type_Q", typeof(string));
dt_rec.Columns.Add(col1);
dt_rec.Columns.Add(col2);
dt_rec.Columns.Add(col3);
dt_rec.Columns.Add(col4);
dt_rec.Columns.Add(col5);
dt_rec.Columns.Add(col6);
dt_rec.Columns.Add(col7);
dt_rec.Columns.Add(col8);
dt_rec.Columns.Add(col9);
dt_rec.Clear();
this.currentpageindex++;
dt_rec = Getcurrentrecords(this.currentpageindex);
string filename = "";
object FilePath = "";
for (int i = 0; i < dt_rec.Rows.Count; i++)//تبدیل فایلهای word به عکس
{
imageList1.Images.Clear();
filename = dt_rec.Rows[i][1].ToString();
FilePath = (Object)String.Format("{0}\\WordFile\\" + filename, System.Windows.Forms.Application.StartupPath);
if (File.Exists(FilePath.ToString()))
{
oWordDoc = oWordApp.Documents.Open(ref FilePath, ref oMissing, ref readOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
byte[] bytes = (byte[])oWordApp.ActiveDocument.Content.EnhMetaFileBits;
Image temp;
MemoryStream ms = new MemoryStream(bytes);
temp = Image.FromStream(ms);
Bitmap b = new Bitmap(temp);
this.imageList1.ImageSize = new Size(256, 130);
imageList1.Images.Add(b);
oWordDoc.Close(ref oFalse, ref oMissing, ref oMissing);
dataGridView1.Rows.Add(false, imageList1.Images[0], dt_rec.Rows[i][0].ToString(), dt_rec.Rows[i][3].ToString() + "." + dt_rec.Rows[i][4].ToString() + "." + dt_rec.Rows[i][5].ToString());
dataGridView1.Rows[i].Height = 130;
}
}
}
}
catch (Exception ex)
{
foreach (Process p in Process.GetProcessesByName("WINWORD"))
p.Kill();
MessageBox.Show(ex.Message, "پیغام", MessageBoxButtons.OK);
}
دکمه قبلی
try {
if (this.currentpageindex > 1)
{
dataGridView1.Rows.Clear();
DataTable dt_rec = new DataTable();
DataColumn col1 = new DataColumn("Num_Question", typeof(string));
DataColumn col2 = new DataColumn("QTs_Name", typeof(string));
DataColumn col3 = new DataColumn("Correct_Ans", typeof(string));
DataColumn col4 = new DataColumn("Base_N", typeof(string));
DataColumn col5 = new DataColumn("Branch", typeof(string));
DataColumn col6 = new DataColumn("L_Code", typeof(string));
DataColumn col7 = new DataColumn("Chapter_N", typeof(string));
DataColumn col8 = new DataColumn("Section_N", typeof(string));
DataColumn col9 = new DataColumn("Type_Q", typeof(string));
dt_rec.Columns.Add(col1);
dt_rec.Columns.Add(col2);
dt_rec.Columns.Add(col3);
dt_rec.Columns.Add(col4);
dt_rec.Columns.Add(col5);
dt_rec.Columns.Add(col6);
dt_rec.Columns.Add(col7);
dt_rec.Columns.Add(col8);
dt_rec.Columns.Add(col9);
dt_rec.Clear();
this.currentpageindex--;
dt_rec = Getcurrentrecords(this.currentpageindex);
string filename = "";
object FilePath = "";
for (int i = 0; i < dt_rec.Rows.Count; i++)//تبدیل فایلهای word به عکس
{
imageList1.Images.Clear();
filename = dt_rec.Rows[i][1].ToString();
FilePath = (Object)String.Format("{0}\\WordFile\\" + filename, System.Windows.Forms.Application.StartupPath);
if (File.Exists(FilePath.ToString()))
{
oWordDoc = oWordApp.Documents.Open(ref FilePath, ref oMissing, ref readOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
byte[] bytes = (byte[])oWordApp.ActiveDocument.Content.EnhMetaFileBits;
Image temp;
MemoryStream ms = new MemoryStream(bytes);
temp = Image.FromStream(ms);
Bitmap b = new Bitmap(temp);
this.imageList1.ImageSize = new Size(256, 130);
imageList1.Images.Add(b);
oWordDoc.Close(ref oFalse, ref oMissing, ref oMissing);
dataGridView1.Rows.Add(false, imageList1.Images[0], dt_rec.Rows[i][0].ToString(), dt_rec.Rows[i][3].ToString() + "." + dt_rec.Rows[i][4].ToString() + "." + dt_rec.Rows[i][5].ToString());
dataGridView1.Rows[i].Height = 130;
}
}
}
}
catch (Exception ex)
{
foreach (Process p in Process.GetProcessesByName("WINWORD"))
p.Kill();
MessageBox.Show(ex.Message, "پیغام", MessageBoxButtons.OK);
}
دوستان من دیتاگرید رو به صورت معمولی صفحه بندی کردم یعنی یک دکمه بعدی و یک دکمه قبلی قرار دادم حالا چطور میتونم وقتی کاربر یک گزینه رو انتخاب کرد (چک باکس مربوطه اش را انتخاب کرد) بلافاصله به لیست انتخاب شده ها و وقتی اون گزینه رو از حالت انتخاب خارج کرد همون موقع از لیست انتخاب شده ها حذفش کنم.
دوستان ،من برای اینکه هر تغییری در دیتاگرید انجام میشه(یعنی وقتی چک باکس مربوط به هر رکورد زده میشه رکورد مربوطه اطلاعاتش نگهداری بشه) این کد رو در cellmouseup نوشتم ولی وقتی دکمه نمایش رو میزنم هر رکورد چند بار نمایش داده میشه ؟؟؟
private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) {
if (e.ColumnIndex == 0 && e.RowIndex > -1)
{
dataGridView1.CommitEdit(DataGridViewDataErrorCont exts.Commit);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[0].Value))
{
DataRow dr = dt_select.NewRow();
dr[0] = row.Cells[2].Value.ToString();
dt_select.Rows.Add(dr);
}
}
}
}
مشکل از کجاست آیا باید در رویداد دیگه ای بنویسم؟؟؟
کد صفحه بندی دیتاگرید
دکمه بعدی
try {
if (this.currentpageindex < this.Totalpage)
{
dataGridView1.Rows.Clear();
DataTable dt_rec = new DataTable();
DataColumn col1 = new DataColumn("Num_Question", typeof(string));
DataColumn col2 = new DataColumn("QTs_Name", typeof(string));
DataColumn col3 = new DataColumn("Correct_Ans", typeof(string));
DataColumn col4 = new DataColumn("Base_N", typeof(string));
DataColumn col5 = new DataColumn("Branch", typeof(string));
DataColumn col6 = new DataColumn("L_Code", typeof(string));
DataColumn col7 = new DataColumn("Chapter_N", typeof(string));
DataColumn col8 = new DataColumn("Section_N", typeof(string));
DataColumn col9 = new DataColumn("Type_Q", typeof(string));
dt_rec.Columns.Add(col1);
dt_rec.Columns.Add(col2);
dt_rec.Columns.Add(col3);
dt_rec.Columns.Add(col4);
dt_rec.Columns.Add(col5);
dt_rec.Columns.Add(col6);
dt_rec.Columns.Add(col7);
dt_rec.Columns.Add(col8);
dt_rec.Columns.Add(col9);
dt_rec.Clear();
this.currentpageindex++;
dt_rec = Getcurrentrecords(this.currentpageindex);
string filename = "";
object FilePath = "";
for (int i = 0; i < dt_rec.Rows.Count; i++)//تبدیل فایلهای word به عکس
{
imageList1.Images.Clear();
filename = dt_rec.Rows[i][1].ToString();
FilePath = (Object)String.Format("{0}\\WordFile\\" + filename, System.Windows.Forms.Application.StartupPath);
if (File.Exists(FilePath.ToString()))
{
oWordDoc = oWordApp.Documents.Open(ref FilePath, ref oMissing, ref readOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
byte[] bytes = (byte[])oWordApp.ActiveDocument.Content.EnhMetaFileBits;
Image temp;
MemoryStream ms = new MemoryStream(bytes);
temp = Image.FromStream(ms);
Bitmap b = new Bitmap(temp);
this.imageList1.ImageSize = new Size(256, 130);
imageList1.Images.Add(b);
oWordDoc.Close(ref oFalse, ref oMissing, ref oMissing);
dataGridView1.Rows.Add(false, imageList1.Images[0], dt_rec.Rows[i][0].ToString(), dt_rec.Rows[i][3].ToString() + "." + dt_rec.Rows[i][4].ToString() + "." + dt_rec.Rows[i][5].ToString());
dataGridView1.Rows[i].Height = 130;
}
}
}
}
catch (Exception ex)
{
foreach (Process p in Process.GetProcessesByName("WINWORD"))
p.Kill();
MessageBox.Show(ex.Message, "پیغام", MessageBoxButtons.OK);
}
دکمه قبلی
try {
if (this.currentpageindex > 1)
{
dataGridView1.Rows.Clear();
DataTable dt_rec = new DataTable();
DataColumn col1 = new DataColumn("Num_Question", typeof(string));
DataColumn col2 = new DataColumn("QTs_Name", typeof(string));
DataColumn col3 = new DataColumn("Correct_Ans", typeof(string));
DataColumn col4 = new DataColumn("Base_N", typeof(string));
DataColumn col5 = new DataColumn("Branch", typeof(string));
DataColumn col6 = new DataColumn("L_Code", typeof(string));
DataColumn col7 = new DataColumn("Chapter_N", typeof(string));
DataColumn col8 = new DataColumn("Section_N", typeof(string));
DataColumn col9 = new DataColumn("Type_Q", typeof(string));
dt_rec.Columns.Add(col1);
dt_rec.Columns.Add(col2);
dt_rec.Columns.Add(col3);
dt_rec.Columns.Add(col4);
dt_rec.Columns.Add(col5);
dt_rec.Columns.Add(col6);
dt_rec.Columns.Add(col7);
dt_rec.Columns.Add(col8);
dt_rec.Columns.Add(col9);
dt_rec.Clear();
this.currentpageindex--;
dt_rec = Getcurrentrecords(this.currentpageindex);
string filename = "";
object FilePath = "";
for (int i = 0; i < dt_rec.Rows.Count; i++)//تبدیل فایلهای word به عکس
{
imageList1.Images.Clear();
filename = dt_rec.Rows[i][1].ToString();
FilePath = (Object)String.Format("{0}\\WordFile\\" + filename, System.Windows.Forms.Application.StartupPath);
if (File.Exists(FilePath.ToString()))
{
oWordDoc = oWordApp.Documents.Open(ref FilePath, ref oMissing, ref readOnly, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
byte[] bytes = (byte[])oWordApp.ActiveDocument.Content.EnhMetaFileBits;
Image temp;
MemoryStream ms = new MemoryStream(bytes);
temp = Image.FromStream(ms);
Bitmap b = new Bitmap(temp);
this.imageList1.ImageSize = new Size(256, 130);
imageList1.Images.Add(b);
oWordDoc.Close(ref oFalse, ref oMissing, ref oMissing);
dataGridView1.Rows.Add(false, imageList1.Images[0], dt_rec.Rows[i][0].ToString(), dt_rec.Rows[i][3].ToString() + "." + dt_rec.Rows[i][4].ToString() + "." + dt_rec.Rows[i][5].ToString());
dataGridView1.Rows[i].Height = 130;
}
}
}
}
catch (Exception ex)
{
foreach (Process p in Process.GetProcessesByName("WINWORD"))
p.Kill();
MessageBox.Show(ex.Message, "پیغام", MessageBoxButtons.OK);
}