none
Ошибка при чтении текста в richtextbox (CSharp)

    Вопрос

  • У меня есть код:

    if(richtextbox1.Lines[0] == "text1" && richtextbox1.Lines[1] == "text2") //здесь показывает ошибку
    {
    richtextbox1.Text = "done";
    }

    И когда я ввожу что-то в richtextbox1,тогда выводит на первую линию иконку красной ошибки.

    Подробности:

    System.IndexOutOfRangeException
      HResult=0x80131508
      Сообщение = Индекс находился вне границ массива.
      Источник = VoltMakerX
      Трассировка стека:
       в VoltMakerX.Form1.richTextBox1_TextChanged(Object sender, EventArgs e) в C:\Users\Сергей\source\repos\VoltMakerX\VoltMakerX\Form1.cs:строка 54
       в System.Windows.Forms.Control.OnTextChanged(EventArgs e)
       в System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
       в System.Windows.Forms.TextBoxBase.WmReflectCommand(Message& m)
       в System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       в System.Windows.Forms.RichTextBox.WmReflectCommand(Message& m)
       в System.Windows.Forms.RichTextBox.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       в System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
       в System.Windows.Forms.Control.WmCommand(Message& m)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       в System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
       в System.Windows.Forms.Control.DefWndProc(Message& m)
       в System.Windows.Forms.Control.WmKeyChar(Message& m)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       в System.Windows.Forms.RichTextBox.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.Run(Form mainForm)
       в VoltMakerX.Program.Main() в C:\Users\Сергей\source\repos\VoltMakerX\VoltMakerX\Program.cs:строка 19



    • Изменено Qrai 16 апреля 2018 г. 17:11
    16 апреля 2018 г. 13:14

Ответы

Все ответы

  • Какую ошибку? Приведите полные данные.

    В любом случае ваш код не проверят числа строк, это конечно же приведет к падению если строк меньше двух.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    16 апреля 2018 г. 16:30
  • System.IndexOutOfRangeException
      HResult=0x80131508
      Сообщение = Индекс находился вне границ массива.
      Источник = VoltMakerX
      Трассировка стека:
       в VoltMakerX.Form1.richTextBox1_TextChanged(Object sender, EventArgs e) в C:\Users\Сергей\source\repos\VoltMakerX\VoltMakerX\Form1.cs:строка 54
       в System.Windows.Forms.Control.OnTextChanged(EventArgs e)
       в System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
       в System.Windows.Forms.TextBoxBase.WmReflectCommand(Message& m)
       в System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       в System.Windows.Forms.RichTextBox.WmReflectCommand(Message& m)
       в System.Windows.Forms.RichTextBox.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       в System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
       в System.Windows.Forms.Control.WmCommand(Message& m)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       в System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
       в System.Windows.Forms.Control.DefWndProc(Message& m)
       в System.Windows.Forms.Control.WmKeyChar(Message& m)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.TextBoxBase.WndProc(Message& m)
       в System.Windows.Forms.RichTextBox.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.Run(Form mainForm)
       в VoltMakerX.Program.Main() в C:\Users\Сергей\source\repos\VoltMakerX\VoltMakerX\Program.cs:строка 19
    16 апреля 2018 г. 17:09
  • Все как я и скзал, дефектный код не проверят размер массива.

    Поясните что вам не ясно во фразе "Индекс находился вне границ массива."? 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    16 апреля 2018 г. 17:44
  • как её исправить или как сделать код с такими же функциями?(чтение текста из строк)
    16 апреля 2018 г. 17:53
  • Добавить проверку числа строк. 

    This posting is provided "AS IS" with no warranties, and confers no rights.

    16 апреля 2018 г. 19:57