【问题标题】:Using Method to Read/Write value in Textbox in C# [duplicate]使用方法在 C# 中的文本框中读取/写入值 [重复]
【发布时间】:2019-10-31 05:50:38
【问题描述】:

我有 form1class1。 我想使用一种方法在 class1 的 form1 中的文本框中读取/写入文本。 这是程序的一部分。我目前能够在这两者之间进行交互。唯一的问题是我不会如何将字符串转换为可以读取的形式。

form1中:

public string readTxt(string txtbox_name) 
{
string txtbox_val;
txtbox_val = (txtbox_name).Text; //problem here
return txtbox_val;
} 

public void writeTxt(string txtbox_name,string txtbox_val)
{
    (txtbox_name).Text = txtbox_val; //problem here
} 

例如,我需要在 textbox1 中读取/写入值。

class1中:

string text1 = (readTxt(textbox1)); //for get the text in textbox1
string text2 = "Hello"
writeTxt(textbox1,text2); //for overwrite the text in textbox1 to "Hello"

抱歉,由于提问不好,问题很混乱。

【问题讨论】:

  • 你能解释一下你想要达到什么目的的用例吗?
  • 使用事件。 c# 是事件驱动语言。您不需要任何方法来获取文本框中的文本,在您的类中只需编写 txtbox_name.Text。它将返回文本框中的文本。您可以将文本分配给变量以喜欢这个 var text= txtbox_name.Text。如果您需要在用户输入时登录控制台,只需在文本框中使用 keyup 事件。
  • 文本框和控制台。有趣的应用有什么用?

标签: c#


【解决方案1】:

对于winforms,您可以使用Control.ControlCollection.Find(String, Boolean)

通过其 Name 属性搜索控件并构建一个数组 所有匹配的控件。

Enumerable.OfType(IEnumerable)

根据指定类型过滤 IEnumerable 的元素。

public string ReadText(string txtbox_name) 
{
    // insert false if you expect not to be in a sub control
    return Controls.Find(txtbox_name,true) 
                  .OfType<TextBox>()
                  .FirstOrDefault()?.Text
}

但我担心你的问题实际上是,我怎样才能从我的 TextBox 中获取文本。

var text = MyControl.Text;

更新

如果我想写入文本框怎么样。

var textBox = Controls.Find(txtbox_name,true) 
                      .OfType<TextBox>()
                      .FirstOrDefault();

if(textBox != null)
textBox.Text = "yehaa";

澄清

调用Find 和其他方法的区别在于,如果您的Textbox 被埋在Panel 或其他SubControls 中,其他方法将找不到它。除此之外,它们完全相同。 Find 在第二个参数标志上工作,我可以选择搜索 subcontrols

searchAllChildren

true 搜索所有子控件;否则为假。

【讨论】:

  • 如果我想写入文本框怎么样。
  • @RoyceAng 已更新。
【解决方案2】:

您可以使用名称搜索所有 TextBox 并使用 Controls 属性获取文本。 例如,

public string ReadText(string txtbox_name)
{
   return Controls.OfType<TextBox>().Single(x => x.Equals(txtbox_name)).Text;
}

【讨论】:

  • 领先我 30 秒。几乎相同的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2023-03-22
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多