0

を持つForm(ClientGUI)がありRichTextBoxます。私がしたいことは、別のクラス (MyQuickFixApp) にある Sub からこの RichTextBox にテキストを追加することです。デバッガーが通過するため、 Sub が機能することはわかっていますが、テキストを my に追加しませんRichTextBox

それ、どうやったら出来るの ?

助けてくれてありがとう!


ClientGUI.vb :

Imports QuickFix
Imports QuickFix.Transport
Imports QuickFix.Fields

Public Class ClientGUI
    Dim initiator As SocketInitiator

    Public Sub ClientGUI_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim filename As String = "Resources/initiator.cfg"
        Dim settings As New SessionSettings(filename)
        Dim myApp As New MyQuickFixApp()

        Dim storeFactory As New FileStoreFactory(settings)
        Dim logFactory As New FileLogFactory(settings)

        initiator = New SocketInitiator(myApp, storeFactory, settings, logFactory)
    End Sub

    Public Sub ConnectToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ConnectToolStripMenuItem.Click
        ToolStripDropDownButton1.Text = "Establishing connection..."
        ToolStripDropDownButton1.Image = My.Resources.Connecting
        initiator.Start()
    End Sub

    Public Sub DisconnectToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DisconnectToolStripMenuItem.Click
        ToolStripDropDownButton1.Text = "Disconnecting..."
        ToolStripDropDownButton1.Image = My.Resources.Disconnecting
        initiator.Stop()
    End Sub
End Class

MyQuickFixApp.vb :

Imports QuickFix
Imports QuickFix.Transport
Imports QuickFix.Fields

Public Class MyQuickFixApp
    Inherits MessageCracker : Implements IApplication

    Dim _session As Session = Nothing

    Public Sub FromAdmin(message As Message, sessionID As SessionID) Implements IApplication.FromAdmin
        ClientGUI.RichTextBox1.AppendText("")
        ClientGUI.RichTextBox1.AppendText("IN (ADMIN): " + message.ToString())

        Try
            Crack(message, sessionID)
        Catch ex As Exception
            ClientGUI.RichTextBox1.AppendText("")
            ClientGUI.RichTextBox1.AppendText("==Cracker exception==")
            ClientGUI.RichTextBox1.AppendText(ex.ToString())
            ClientGUI.RichTextBox1.AppendText(ex.StackTrace)
        End Try
    End Sub

    Public Sub FromApp(message As Message, sessionID As SessionID) Implements IApplication.FromApp
        ClientGUI.RichTextBox1.AppendText("")
        ClientGUI.RichTextBox1.AppendText("IN (APP): " + message.ToString())

        Try
            Crack(message, sessionID)
        Catch ex As Exception
            ClientGUI.RichTextBox1.AppendText("")
            ClientGUI.RichTextBox1.AppendText("==Cracker exception==")
            ClientGUI.RichTextBox1.AppendText(ex.ToString())
            ClientGUI.RichTextBox1.AppendText(ex.StackTrace)
        End Try
    End Sub

    Public Sub ToApp(message As Message, sessionId As SessionID) Implements IApplication.ToApp
        Try
            Dim possDupFlag As Boolean = False
            If (message.Header.IsSetField(Tags.PossDupFlag)) Then
                possDupFlag = Converters.BoolConverter.Convert(message.Header.GetField(Tags.PossDupFlag))
            End If
            If (possDupFlag) Then
                Throw New DoNotSend()
            End If
        Catch ex As FieldNotFoundException
            ClientGUI.RichTextBox1.AppendText("OUT (APP): " + message.ToString())
        End Try
    End Sub

    Public Sub OnCreate(sessionID As SessionID) Implements IApplication.OnCreate
        '_session = Session.LookupSession(sessionID)
        ClientGUI.RichTextBox1.AppendText("Session created - " + sessionID.ToString())
    End Sub

    Public Sub OnLogon(sessionID As SessionID) Implements IApplication.OnLogon
        ClientGUI.RichTextBox1.AppendText("Logon - " + sessionID.ToString())
        ClientGUI.ToolStripDropDownButton1.Text = "Connected"
        ClientGUI.ToolStripDropDownButton1.Image = My.Resources.Connected
        'MsgBox("onlogon")
    End Sub

    Public Sub OnLogout(sessionID As SessionID) Implements IApplication.OnLogout
        ClientGUI.RichTextBox1.AppendText("Logout - " + sessionID.ToString())
        ClientGUI.ToolStripDropDownButton1.Text = "Disconnected"
        ClientGUI.ToolStripDropDownButton1.Image = My.Resources.Disconnected
    End Sub

    Public Sub ToAdmin(message As Message, sessionID As SessionID) Implements IApplication.ToAdmin
        ClientGUI.RichTextBox1.AppendText("OUT (ADMIN): " + message.ToString())
    End Sub

    Public Sub OnMessage(message As FIX42.Heartbeat, sessionID As SessionID)
        ClientGUI.RichTextBox1.AppendText("HEARTBEAT")
    End Sub
End Class
4

2 に答える 2

0

知らせる

    private void button3_Click(object sender, EventArgs e)
    {
        TestClass tc = new TestClass();

        tc.addComment(richTextBox1);
    }

クラスで

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

public class TestClass
{
    public void addComment(RichTextBox rt) 
    {
        rt.Text = rt.Text + Environment.NewLine + "My Dynamic Text";
    }
}

VB.netでも同じことができます

于 2013-08-27T08:13:14.247 に答える