1

在此处输入图像描述

如上图所示,有 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但我不知道如何检索用户选择的类型。有办法吗?

4

2 回答 2

1

接下来我将组织检查选定的单选按钮:

  1. 对于每个单选按钮,Tag用数值(0、1、2 等)填充属性。
  2. 创建具有相应值的枚举。
  3. 为所有单选按钮的Click事件设置相同的事件处理程序。
  4. 检查事件处理程序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());
    }
}

好处:您可以轻松添加任意数量的单选按钮、更改它们等,而无需更改支持代码。您可以在不了解单选按钮的情况下使用选定的值。

于 2012-08-07T08:10:38.293 回答
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;

于 2012-08-07T07:53:26.403 回答