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 に答える