清空textbox中的文字,C#
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了清空textbox中的文字,C#相关的知识,希望对你有一定的参考价值。
winform 一个窗口上面有很多textbox,我有一个button叫做清空,怎么写能点击清空然后所有的textbox都清空呢 ,我看了有个clear,但是我这上面没有,是不是少什么using?
页面设计如下:
为了测试,窗体中除了TextBox 我还放了其他的一些控件。
后台采用迭代遍历,判断TextBox,然后清空文本值。
private void button1_Click(object sender, EventArgs e)foreach (Control item in this.Controls)
if (item is TextBox)
item.Text = string.Empty;
//调用Clear方法也是可以的。
//(item as TextBox).Clear();
参考技术A //using System.Linq;
private void button1_Click(object sender, EventArgs e)
Controls.OfType<TextBox>().ToList().ForEach(t => t.Clear());
追问
oftype找不到,需要using 另外 解释一下呢
追答你的目标框架是2.0,3.5,4.0,还是4.5?
追问2.0 的
追答 private void button1_Click(object sender, EventArgs e)foreach (Control c in Controls)
if (c is TextBox)
(c as TextBox).Clear();
追问
if 语句的时候就不走下去了 ,我这边判断if语句里是false,但是确实是textbox啊
追答这就有点奇怪了,你把声明此控件的那行代码贴来看看。
追问private void button_clear_Click(object sender, EventArgs e)
追答不是这个,我说的是你的textbox的声明,还有你的textbox是否放在panel或者groupbox之类的容器里面?
追问对的 ,放在了panel里的。那这个要怎么做呢?
追答 private void button1_Click(object sender, EventArgs e)foreach (Control c in this.Controls)
F(c);
private void F(Control c)
if (c is Panel)
foreach (Control cc in (c as Panel).Controls)
F(cc);
else
if (c is TextBox)
(c as TextBox).Clear();
本回答被提问者采纳 参考技术B foreach (Control c in Controls)
if (c is TextBox)
(c as TextBox).Text="";
遍历窗口所有textbox控件,赋值为空即可
保存TextBox中的文字为Path功能
保存TextBox中的文字为Path功能
今天再设计一个我自己程序的Icon时使用了Path+textbox做了图形,我不想导出为PNG,因为颜色比较单一,我又想通过代码控制颜色,所以我想完整的保存为Path。所以做了这个软件,支持设置不同的字体和字号,然后点击获取Path,就导出了path。然后粘贴到想用的地方即可。
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Media;
namespace TextTransformationPath
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
[Obsolete]
public string CreateText(string text)
{
System.Windows.FontStyle fontStyle = FontStyles.Normal;
FontWeight fontWeight = FontWeights.Medium;
var pixelsPerDip = VisualTreeHelper.GetDpi(this).PixelsPerDip;
FormattedText formattedText = new FormattedText(
text,
CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface(
new FontFamily(cbo_fontFamily.SelectedItem.ToString()),
fontStyle,
fontWeight,
FontStretches.Normal),
Convert.ToInt32(FontSizeTextBox.Text),
System.Windows.Media.Brushes.Black,
pixelsPerDip
);
// Build the geometry object that represents the text.
var _textGeometry = formattedText.BuildGeometry(new System.Windows.Point(0, 0));
// Build the geometry object that represents the text highlight.
var res = PathGeometry.CreateFromGeometry(_textGeometry).ToString();
return res;
}
private void GetTextTransformPath_Click(object sender, RoutedEventArgs e)
{
ResultPathTextBox.Text= CreateText(SourceText.Text);
}
}
}
XAML代码
<Window x:Class="TextTransformationPath.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TextTransformationPath"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<StackPanel>
<TextBlock Margin="0,5" Text="输入待获取Path的内容:"/>
<TextBox FontSize="{Binding ElementName=FontSizeTextBox,Path=Text}" Height="50" x:Name="SourceText" Text="杜文龙" FontFamily="{Binding ElementName=cbo_fontFamily,Path=SelectedItem}"/>
<ComboBox x:Name="cbo_fontFamily" SelectedIndex="0" ItemsSource="{x:Static Fonts.SystemFontFamilies}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" FontFamily="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.ItemsPanel >
<ItemsPanelTemplate >
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<TextBlock Text="字号:"/>
<TextBox x:Name="FontSizeTextBox" Text="30"/>
<Button Margin="0,5" Content="点击获取Path" Click="GetTextTransformPath_Click"/>
<TextBox x:Name="ResultPathTextBox"/>
</StackPanel>
</Grid>
</Window>
以上是关于清空textbox中的文字,C#的主要内容,如果未能解决你的问题,请参考以下文章