【问题标题】:Textbox data to RichTextBox using class form使用类表单将文本框数据转换为 RichTextBox
【发布时间】:2014-09-13 15:52:27
【问题描述】:

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

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;
    }      
}

这是设计代码:

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)
    {
    }
}

【问题讨论】:

    标签: c# winforms class textbox richtextbox


    【解决方案1】:

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

    如果您想在显示之前将文本框数据存储在单独的类中,请在您的代码隐藏中实例化它:

    public partial class TelephoneEntryForm : Form
    {
        private Telephone telephone;
    
        public TelephoneEntryForm()
        {
            InitializeComponent();
    
            telephone = new Telephone();
        }
    

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

    这应该可以为您提供足够的信息来完成它。让我们知道您是否遇到困难,以及您卡在哪里,以便有人可以帮助您。

    【讨论】:

    • 对不起,我还是 c# 和 windows 窗体的新手,所以我有点困惑。
    【解决方案2】:

    好吧,如果我对你的理解正确的话,你已经有按钮 Enter click 事件处理程序 - btnEnter_Click 方法...这意味着在这个方法中编写的所有代码都将在 You click Enter 按钮时执行。

    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}\n", telephone);
    
         // Clear text boxes             
         manufacturerTextBox.Text = modelTextBox.Text = phoneNumberTextBox.Text = string.empty;
     }
    

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

    class Telephone
    {
        ...
        public override string ToString()
        {
             return string.Format("Manufacturer: {0}; Model: {1}; Phone number: {2}", Manufacturer, Model, PhoneNumber)
        }
        ...
    }
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-03
        • 2017-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-15
        • 1970-01-01
        相关资源
        最近更新 更多