none
Для нестатического поля, метода или свойства... RRS feed

  • Вопрос

  • Здравствуйте, я пока еще только учусь с C#
    за основу взят этот пример

    http://msdn.microsoft.com/en-us/library/bew39x2a%28v=VS.85%29.aspx

    выходит ошибка  "Для нестатического поля, метода или свойства "SCh.frmMain.AppendText(string)" требуется ссылка на объект    D:\Temp\SCh\Form1.cs    149    25    iSCh"

    Суть ошибки я понимаю, но как побороть я так и не нашел

    С выводом текста при подключении к серверу в webbrowser вроде разобрался, теперь возникла проблема при чтении данных от сервера и вывод их webbrowser

    private static void ReceiveCallback(IAsyncResult ar)
            {
                try
                {
                    StateObject state = (StateObject)ar.AsyncState;
                    Socket client = state.workSocket;
    
                    int bytesRead = client.EndReceive(ar);
    
                    if (bytesRead > 0)
                    {
                        state.sb.Append(Encoding.ASCII.GetString(state.buffer, 0, bytesRead));
                        client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state);
                    }
                    else
                    {
                        // All the data has arrived; put it in response.
                        if (state.sb.Length > 1)
                        {
                            response = state.sb.ToString();
                            AppendText(response);
                        }
                       // Signal that all bytes have been received.
                        receiveDone.Set();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    

    Добавление

            private void AppendText(string mgs)
            {
                HtmlDocument doc = webMain.Document;
                HtmlElement textElem = doc.CreateElement("DIV");
                textElem.InnerHtml = mgs;
                doc.Body.AppendChild(textElem);
            }
    

    Подскажите примером как побороть

     

    • Перемещено Abolmasov Dmitry 27 января 2012 г. 11:11 (От:Настольные ПК)
    29 декабря 2011 г. 6:51

Ответы

Все ответы

  • Сделать ReceiveCallback нестатическим.
    • Помечено в качестве ответа ulcerModerator 10 января 2012 г. 15:21
    29 декабря 2011 г. 10:48
    Модератор
  • Или сделать AppendText статическим, т.е. добавить в объявление метода модификатор static.


    Для связи [mail]
    30 декабря 2011 г. 7:45
  • Или сделать AppendText статическим, т.е. добавить в объявление метода модификатор static.


    тогда ругается "Для нестатического поля, метода или свойства "SCh.frmMain.webMain" требуется ссылка на объект    D:\Temp\SCh\Form1.cs    48    32"

            private static void AppendText(string mgs)
            {
                HtmlDocument doc = webMain.Document;
                HtmlElement textElem = doc.CreateElement("DIV");
                textElem.InnerHtml = mgs;
                doc.Body.AppendChild(textElem);
            }
    


    10 января 2012 г. 6:23
  • Естественно, ругается. Надо было сделать ReceiveCallback нестатическим. И то, что его вызывает - тоже.
    10 января 2012 г. 8:41
    Модератор
  • Естественно, ругается. Надо было сделать ReceiveCallback нестатическим. И то, что его вызывает - тоже.
    да я так уже и сделал)) заработало. Просто ответил на предыдущий пост :)
    10 января 2012 г. 12:36