如上图所示,有3种单选按钮和一个文本框。为了用户搜索数据,用户需要填写文本框并选择要搜索的类型。这些数据将以另一种形式出现。
这是我在搜索表单中的代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
namespace SliceLink
{
public partial class SearchForm : Form
{
public Form2()
{
InitializeComponent();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
string _radio;
public string radio
{
get { return this._radio; }
set { this._radio = value; }
}
public void button1_Click(object sender, EventArgs e)
{
//RadioButton rb = (RadioButton)sender;
if (textBox1.Text == "")
MessageBox.Show("Please enter keyword to search");
else
{
Form3 form3 = new Form3(textBox1.Text);
form3.Show();
}
}
}
}
这是我在viewForm中查看的代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Linq;
namespace SliceLink
{
public partial class ViewForm : Form
{
public Form3(string sTEXT)
{
InitializeComponent();
XmlDocument xml = new XmlDocument();
xml.Load("C:\\Users\\HDAdmin\\Documents\\SliceEngine\\SliceEngine\\bin\\Debug\\saya.xml");
XmlNodeList xnList = xml.SelectNodes("/Patient/Patient/Name");
//XmlNodeList xnList = xml.SelectNodes(sTEXT);
foreach (XmlNode xn in xnList)
{
string name = xn.InnerText;
textBox1.Text = name;
}
}
}
}
我可以在textbox
收到用户输入填写,但我不知道如何检索用户选择的类型。有办法吗?
答案 0 :(得分:1)
我会组织检查选择的单选按钮:
Tag
属性。Click
事件设置相同的事件处理程序。Tag
单选按钮的sender
值。所以,这是表格的示例代码:
internal enum SearchType
{
All = 0, Date = 1, Id = 2
}
public partial class MainForm : Form
{
private SearchType _selectedSearchType = SearchType.All;
private void searchButton_Click(object sender, EventArgs e)
{
// Use _selectedSearchType to do search.
}
private void radioButton_Click(object sender, EventArgs e)
{
_selectedSearchType = (SearchType)Enum.Parse(typeof(SearchType), ((Control)sender).Tag.ToString());
}
}
好处:您可以轻松添加任意数量的单选按钮,更改它们等,而无需更改支持代码。并且您可以使用所选值而无需任何关于单选按钮的知识。
答案 1 :(得分:0)
您可以为不同选项创建enum
类型,然后在包含单选按钮的表单上创建公共property
,并根据选择的那个返回相应的enum
值。
所以你会得到类似的东西:
public enum FindType { DATE, ID, ALL }
在SearchForm
:
public FindType FindGrouping
{
get
{
if (radioButtonDate.Checked)
return FindType.DATE;
// ... etc.
}
使用ViewForm
searchFormInstance.FindGrouping;
中的值