【问题标题】:Update second column listView from TextBox changed - c#从 TextBox 更新第二列 listView 已更改 - c#
【发布时间】:2013-02-24 04:12:24
【问题描述】:
使用此代码,我可以填充我的列表视图:
foreach (string elements in Properties.Settings.Default.Items)
{
ListViewItem lvi = new ListViewItem();
var txt = elements;
if (!listView1.Items.ContainsKey(txt))
{
lvi.Text = txt;
lvi.Name = txt;
lvi.SubItems.Add("");
lvi.SubItems.Add("1.0");
listView1.Items.Add(lvi);
}
}
这是结果:
如何从文本框更改事件中仅更新第二列(总价)? (Windows 窗体,Visual Studio 2012)
【问题讨论】:
标签:
c#
winforms
listview
textbox
【解决方案1】:
一些属性
listView1.HideSelection = false;
listView1.MultiSelect = false;
listView1.FullRowSelect = true;
listView1.View = View.Details;
我认为这就是您的要求:
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextBox txt_sender = (TextBox)sender;
if (listView1.SelectedItems.Count > 0)
{
listView1.SelectedItems[0].SubItems[1].Text = txt_sender.Text;
}
}
我还可以建议:(只允许数字和一个。)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
TextBox txt_sender = (TextBox)sender;
if (!char.IsControl(e.KeyChar) &&
!char.IsDigit(e.KeyChar) &&
!((e.KeyChar == '.') && !(txt_sender).Text.Contains('.')))
{
e.Handled = true;
}
}