如何检测用户在 ListBox winforms 中单击了哪个项目
How to detect which item the user clicked in a ListBox win forms
我正在努力做的是
- 找出 SelectedItems[]
的通配符
我想要一个基于 SelectedItem 的 var uploadDir。
我目前的处理方式我觉得只是重复的代码,可能是更好的处理方式。
Listbox1
它也不会让我将 x 设置为 null 并在 SelectedItems[x]
中使用它
当前调试代码
private void button1_Click(object sender, EventArgs e)
{
if (ReportPeriod == "Daily Call Data")
{
MessageBox.Show(ReportPeriod);
}else if(ReportPeriod == "Weekly Call Data")
{
MessageBox.Show(ReportPeriod);
}
}
public string ReportPeriod;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int x;
ReportPeriod = listBox1.SelectedItems[x].ToString();
}
非常感谢任何建议。
我正在开发一个工作小程序,通过 excel 模板和 VLOOKUPS 更新我们的 KPI 仪表板。
所以我有一个用户界面,允许经理select他们将从列表框加载的数据类型
例如:每日通话数据、每日CSAT数据、每周通话数据等。
然后他们浏览下载的 csv 文件并按更新
csv 被移动并重命名,旧文件重命名为前一天、前一个月、前一年等。
快速伪代码
int x;
ReportPeriod = listBox1.SelectedItems[x].ToString();
if(ReportPeriod == "Daily Call Data"){
try{
string UploadDir = "C:\folder\daily\filename.xls";
more code...
}catch(Exception){
More code...
}
}
Else If (ReportPeriod == "Weekly Call Data"{
try{
string uploadDir = "C:\folder\weekly\filename.xls";
}
}
我需要做的是检测哪个项目被 selected 并将其分配给 ReportPeriod 并从那里创建 IF 和 ELSE IF 语句,或者我是否可以分配一个值到列表框项目(例如静态目录路径)。
我只是不知道如何从用户鼠标点击中获取 selected 项目。
您并不是通过鼠标点击本身抓取所选项目;列表框会告诉您选择了哪些项目与相关 属性:
如果您只希望用户从列表中选择一项,请将 SelectionMode 设置为 One,然后访问 SelectedItem 属性
如果您希望用户选择多个报告并 运行 将它们全部保存到一个通用的 csv 中,请将选择模式设置为允许多个的模式,然后循环遍历 SelectedItems 集合 运行为每一个报告
我假设您使用字符串(文本)加载了列表项集合。重要的是要注意,您会将它们作为对象取回,因此在与字符串比较以找出所选择的内容之前,您可能需要强制转换或 .ToString()
至于什么时候是在代码中获取值的好时机,你的按钮点击适合我:
private void button1_Click(object sender, EventArgs e)
{
var rp= listbox1.SelectedItem.ToString();
if (rp == "Daily Call Data")
{
MessageBox.Show("day");
}else if(rp == "Weekly Call Data")
{
MessageBox.Show("week");
}
}
我正在努力做的是
- 找出 SelectedItems[] 的通配符
我想要一个基于 SelectedItem 的 var uploadDir。 我目前的处理方式我觉得只是重复的代码,可能是更好的处理方式。
Listbox1
它也不会让我将 x 设置为 null 并在 SelectedItems[x]
中使用它当前调试代码
private void button1_Click(object sender, EventArgs e)
{
if (ReportPeriod == "Daily Call Data")
{
MessageBox.Show(ReportPeriod);
}else if(ReportPeriod == "Weekly Call Data")
{
MessageBox.Show(ReportPeriod);
}
}
public string ReportPeriod;
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int x;
ReportPeriod = listBox1.SelectedItems[x].ToString();
}
非常感谢任何建议。
我正在开发一个工作小程序,通过 excel 模板和 VLOOKUPS 更新我们的 KPI 仪表板。
所以我有一个用户界面,允许经理select他们将从列表框加载的数据类型
例如:每日通话数据、每日CSAT数据、每周通话数据等。
然后他们浏览下载的 csv 文件并按更新 csv 被移动并重命名,旧文件重命名为前一天、前一个月、前一年等。
快速伪代码
int x;
ReportPeriod = listBox1.SelectedItems[x].ToString();
if(ReportPeriod == "Daily Call Data"){
try{
string UploadDir = "C:\folder\daily\filename.xls";
more code...
}catch(Exception){
More code...
}
}
Else If (ReportPeriod == "Weekly Call Data"{
try{
string uploadDir = "C:\folder\weekly\filename.xls";
}
}
我需要做的是检测哪个项目被 selected 并将其分配给 ReportPeriod 并从那里创建 IF 和 ELSE IF 语句,或者我是否可以分配一个值到列表框项目(例如静态目录路径)。
我只是不知道如何从用户鼠标点击中获取 selected 项目。
您并不是通过鼠标点击本身抓取所选项目;列表框会告诉您选择了哪些项目与相关 属性:
如果您只希望用户从列表中选择一项,请将 SelectionMode 设置为 One,然后访问 SelectedItem 属性
如果您希望用户选择多个报告并 运行 将它们全部保存到一个通用的 csv 中,请将选择模式设置为允许多个的模式,然后循环遍历 SelectedItems 集合 运行为每一个报告
我假设您使用字符串(文本)加载了列表项集合。重要的是要注意,您会将它们作为对象取回,因此在与字符串比较以找出所选择的内容之前,您可能需要强制转换或 .ToString()
至于什么时候是在代码中获取值的好时机,你的按钮点击适合我:
private void button1_Click(object sender, EventArgs e)
{
var rp= listbox1.SelectedItem.ToString();
if (rp == "Daily Call Data")
{
MessageBox.Show("day");
}else if(rp == "Weekly Call Data")
{
MessageBox.Show("week");
}
}