Visual C#. Трудности с обработка события
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual C#. Трудности с обработка события

Visual C#. Трудности с обработка события

Ответ
Поиск в этой теме
Непрочитано 10.06.2012, 18:55 #1
Visual C#. Трудности с обработка события
Дмитрий_Leo
 
Регистрация: 27.07.2009
Сообщений: 28

Добрый день. Вот в чем суть проблемы. У меня есть форма. На форме есть таблица (dataGridView). Меня интерисует событие, когда заканчивается редактирование ячейки (dataGridView1_CellEndEdit). Это событие по умолчанию обрабатывается в классе (class Form1 : Form). Но мне нужно что бы оно обрабатывалось в другом классе, который с классом Form1 ни как не связан. Подскажите плиз, как это можно реализовать.
Просмотров: 4820
 
Непрочитано 10.06.2012, 22:43
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Дмитрий_Leo Посмотреть сообщение
Подскажите плиз, как это можно реализовать.
Зарегистрировать событие (подписаться на него - если так понятней).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 11.06.2012, 20:45
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от Дмитрий_Leo Посмотреть сообщение
Но мне нужно что бы оно обрабатывалось в другом классе, который с классом Form1 ни как не связан.
Сохранчй измененное значение в какком-нибудь строковом париетре в Settings и читай его
оттуда в любом классе

Для примера, две формы,
на первой : dataGridView1, button1,button3
на второй: textBox1, button1

В свойствах проекта во вкладке Settings создай строковой парфметер myString или
обзови его как тебе нужно
Вот весь код, вместо второй формы может быть любой другой класс
Код:
[Выделить все]
//__________________Fotm1______________________//
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Resources;

namespace MyForms
{
    public partial class Form1 : Form
    {
        private string value = string.Empty;

        public Form1()
        {
            InitializeComponent();
            this.dataGridView1.CellEndEdit+=new DataGridViewCellEventHandler(dataGridView1_CellEndEdit);     
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Name");
            dt.Columns.Add("Value");
            dt.Rows.Add(new object[] { "Block 1","Value 1" });
            dt.Rows.Add(new object[] { "Block 2", "Value 2" });
            dt.Rows.Add(new object[] { "Block 3", "Value 3" });
            this.dataGridView1.DataSource = dt;

        }

        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
                // Здесь можешь добавить проверку на номер столбца:
               //  if (    e.columnindex==?))(...................
                Properties.Settings.Default.myString = (sender as DataGridView).CurrentCell.Value.ToString();

                Properties.Settings.Default.Save();

                Properties.Settings.Default.Upgrade();
            }
   

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Form frm = new Form2();
            frm.Show();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.dataGridView1.CellEndEdit -= new DataGridViewCellEventHandler(dataGridView1_CellEndEdit);
        }

    }
}
//__________________Fotm2______________________//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyForms
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            this.textBox1.Text = Properties.Settings.Default.myString;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}

//_________________________________________//
~'o'~
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 12.06.2012, 21:42
#4
Дмитрий_Leo


 
Регистрация: 27.07.2009
Сообщений: 28


hwd, Олег (jr.), спасибо за подсказки. Проблема решилась следующим кодом. Но возникла другая проблема, я ни как не могу обратиться к dataGridView1 из PointCoord.CellEndEdit. Все время пишет, что элемент "dataGridView1" не определен в текущем контексте. Может нужно в Form2.Designer.cs менять уровень доступа?

Код HTML:
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            PointCoord PointCoord = new PointCoord();
            dataGridView1.CellEndEdit += PointCoord.CellEndEdit;    
        }
        public void Form2_Load(object sender, EventArgs e)
        {
           ...
        }
        public void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e){}
    }
    
    public class PointCoord
    {      
        public void CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            // Здесь нужно получить достут к dataGridView1
        }
    }  
}
Дмитрий_Leo вне форума  
 
Непрочитано 12.06.2012, 22:28
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Посмотри здесь:
http://www.sql.ru/forum/actualthread.aspx?tid=118917

~'o'~
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Visual C#. Трудности с обработка события



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подключение Visual C# к AutoCAD Alexey_02 Программирование 16 20.07.2011 13:05
Microsoft Visual Studio: Инициатива по лицензированию разработчиков ПО Кулик Алексей aka kpblc Разное 6 05.09.2009 18:16
Изменить имя сохраняемого файла в обработчике события сохранения Ax3 Программирование 2 25.12.2007 12:45