关于c#:使用类表单将文本框数据发送到RichTextBox

Textbox data to RichTextBox using class form

我有一个简单的程序,我必须在这里,但我不太确定如何启动它。我已经定义了类文件,如下所示。我需要做的是创建一个Windows窗体应用程序(如下图所示),我需要将信息输入文本框,然后将其输出到底部的richtextbox1中。我没有显示在下面,但是在Windows窗体中,如果我在这个类文件中有一个方法,您如何调用它?

enter image description here

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Telephone
{
    private string manufacturer;
    private string model;
    private bool isConnected = false;
    private string lastNumberDialed;
    private string phoneNumber;  

    public Telephone()
    {
    }

    public Telephone(string manufacturer, string model, string phoneNumber)
    {
        Manufacturer = manufacturer;
        Model = model;
        PhoneNumber = phoneNumber;
    }

    public string Manufacturer
    {
        get { return manufacturer; }
        set { manufacturer = value; }
    }

    public string Model
    {
        get { return model; }
        set { model = value; }
    }

    public string PhoneNumber
    {
        get { return phoneNumber; }
        set { phoneNumber = value; }
    }

    new public string ToString()
    {
        return"Manufacturer:" + manufacturer;
    }      
}

设计规范如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public partial class TelephoneEntryForm : Form
{
    public TelephoneEntryForm()
    {
        InitializeComponent();
    }

    private void btnEnter_Click(object sender, EventArgs e)
    {
    }

    private void btnShowPhones_Click(object sender, EventArgs e)
    {
    }

    private void btnDial_Click(object sender, EventArgs e)
    {
    }

    private void btnRedial_Click(object sender, EventArgs e)
    {
    }

    private void btnHangUp_Click(object sender, EventArgs e)
    {
    }
}

我真的不明白你为什么要别人来完成这件事,因为你已经把整个事情都安排好了…除非有人给你提供了你发布的代码。

如果要在显示文本框数据之前将其存储在单独的类中,请在后面的代码中实例化它:

1
2
3
4
5
6
7
8
9
10
public partial class TelephoneEntryForm : Form
{
    private Telephone telephone;

    public TelephoneEntryForm()
    {
        InitializeComponent();

        telephone = new Telephone();
    }

然后我可能订阅所有这些文本字段的KeyDown事件,并将每个TextBox的值保存在您的电话实例中各自的属性中。然后在btnShowPhones_Click中,使用电话实例中的值在RichTextBox中显示。

这应该能给你足够的信息,让你可以利用它。如果你被困住了,告诉我们你被困住的确切位置,这样有人可以帮助你。


好吧,如果我理解正确的话,您已经有了按钮enter click事件处理程序-btnEnter_Click方法…这意味着,当您使用clickEnter按钮时,所有用此方法编写的代码都将执行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void btnEnter_Click(object sender, EventArgs e)
{
     // Read tha values of textboxes (not necessarily but more readable)
     string manufacturer = manufacturerTextBox.Text;
     string model = modelTextBox.Text;
     string phoneNumber = phoneNumberTextBox.Text;

     // Create new phone instance, based on entered data
     var telephone = new Telephone(manufacturer, model, phoneNumber);

     // Enter this data to reachtextbox
     richtextbox1.Text += string.Format("{0}
"
, telephone);

     // Clear text boxes            
     manufacturerTextBox.Text = modelTextBox.Text = phoneNumberTextBox.Text = string.empty;
 }

但问题是,在这种情况下,您将丢失所有输入的数据,因为您的ToString()方法只输出Manufacturer…您应该修改此方法以输出完整的电话信息…类似:

1
2
3
4
5
6
7
8
9
class Telephone
{
    ...
    public override string ToString()
    {
         return string.Format("Manufacturer: {0}; Model: {1}; Phone number: {2}", Manufacturer, Model, PhoneNumber)
    }
    ...
}

或将此数据保存在任何类型的文件中。


你在问如何连接一个按钮来调用你的代码吗?如果是这样,请双击按钮以创建事件处理程序方法。在该方法中,添加对任何代码的调用。