#pragma once
#include "BaseForm.h"

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;


namespace ObjDataEdit
{
	/// <summary> 
	/// Summary for RefineTableForm
	///
	/// WARNING: If you change the name of this class, you will need to change the 
	///          'Resource File Name' property for the managed resource compiler tool 
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
#ifndef _Just_Show_DotNet_Form_
    public __gc class RefineTableForm : public System::Windows::Forms::Form
#else 
    public __gc class RefineTableForm : public BaseForm
#endif
	{
	public: 
        RefineTableForm( char* FormName , char* DBName , char* OutputFile  , bool IsReadOnly , SearchFormTypeENUM FormType ) :  BaseForm( FormName , DBName , OutputFile  , IsReadOnly , FormType )
        {
            InitializeComponent();
            this->panel4_Base->Controls->Add(this->panel1);
        }       
	protected: 
		void Dispose(Boolean disposing)
		{
			if (disposing && components)
			{
				components->Dispose();
			}
			__super::Dispose(disposing);
		}
    private: System::Windows::Forms::Panel *  panel1;
    private: System::Windows::Forms::GroupBox *  groupBox2;
    private: System::Windows::Forms::NumericUpDown *  numericUpDown36;
    private: System::Windows::Forms::NumericUpDown *  numericUpDown35;
    private: System::Windows::Forms::NumericUpDown *  numericUpDown34;
    private: System::Windows::Forms::NumericUpDown *  numericUpDown33;
    private: System::Windows::Forms::NumericUpDown *  numericUpDown32;
	private: System::Windows::Forms::ComboBox*  CB_AbilityList5;
	private: System::Windows::Forms::ComboBox*  CB_AbilityList4;
	private: System::Windows::Forms::ComboBox*  CB_AbilityList3;
	private: System::Windows::Forms::ComboBox*  CB_AbilityList2;
	private: System::Windows::Forms::ComboBox*  CB_AbilityList1;
	private: System::Windows::Forms::ComboBox*  CB_RefineType;

	private: System::Windows::Forms::Label*  label1;
	private: System::Windows::Forms::TextBox*  TB_RefineLevel;

	private: System::Windows::Forms::Label*  label2;
	private: System::Windows::Forms::TextBox*  textBox1;
	private: System::Windows::Forms::Label*  label3;


	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container* components;

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->panel1 = (new System::Windows::Forms::Panel());
			this->TB_RefineLevel = (new System::Windows::Forms::TextBox());
			this->label2 = (new System::Windows::Forms::Label());
			this->CB_RefineType = (new System::Windows::Forms::ComboBox());
			this->label1 = (new System::Windows::Forms::Label());
			this->groupBox2 = (new System::Windows::Forms::GroupBox());
			this->numericUpDown36 = (new System::Windows::Forms::NumericUpDown());
			this->numericUpDown35 = (new System::Windows::Forms::NumericUpDown());
			this->numericUpDown34 = (new System::Windows::Forms::NumericUpDown());
			this->numericUpDown33 = (new System::Windows::Forms::NumericUpDown());
			this->numericUpDown32 = (new System::Windows::Forms::NumericUpDown());
			this->CB_AbilityList5 = (new System::Windows::Forms::ComboBox());
			this->CB_AbilityList4 = (new System::Windows::Forms::ComboBox());
			this->CB_AbilityList3 = (new System::Windows::Forms::ComboBox());
			this->CB_AbilityList2 = (new System::Windows::Forms::ComboBox());
			this->CB_AbilityList1 = (new System::Windows::Forms::ComboBox());
			this->textBox1 = (new System::Windows::Forms::TextBox());
			this->label3 = (new System::Windows::Forms::Label());
			this->panel1->SuspendLayout();
			this->groupBox2->SuspendLayout();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown36))->BeginInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown35))->BeginInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown34))->BeginInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown33))->BeginInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown32))->BeginInit();
			this->SuspendLayout();
			// 
			// panel1
			// 
			this->panel1->Controls->Add(this->textBox1);
			this->panel1->Controls->Add(this->label3);
			this->panel1->Controls->Add(this->TB_RefineLevel);
			this->panel1->Controls->Add(this->label2);
			this->panel1->Controls->Add(this->CB_RefineType);
			this->panel1->Controls->Add(this->label1);
			this->panel1->Controls->Add(this->groupBox2);
			this->panel1->Location = System::Drawing::Point(0, 0);
			this->panel1->Name = S"panel1";
			this->panel1->Size = System::Drawing::Size(506, 431);
			this->panel1->TabIndex = 0;
			// 
			// TB_RefineLevel
			// 
			this->TB_RefineLevel->Location = System::Drawing::Point(208, 14);
			this->TB_RefineLevel->Name = S"TB_RefineLevel";
			this->TB_RefineLevel->ReadOnly = true;
			this->TB_RefineLevel->Size = System::Drawing::Size(80, 22);
			this->TB_RefineLevel->TabIndex = 136;
			// 
			// label2
			// 
			this->label2->AutoSize = true;
			this->label2->Location = System::Drawing::Point(173, 19);
			this->label2->Name = S"label2";
			this->label2->Size = System::Drawing::Size(29, 12);
			this->label2->TabIndex = 135;
			this->label2->Text = S"等級";
			// 
			// CB_RefineType
			// 
			this->CB_RefineType->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_RefineType->Enabled = false;
			this->CB_RefineType->FormattingEnabled = true;
			System::Object* __mcTemp__1[] = new System::Object*[16];
			__mcTemp__1[0] = S"無效資料";
			__mcTemp__1[1] = S"武器";
			__mcTemp__1[2] = S"法杖類";
			__mcTemp__1[3] = S"遠距離武器";
			__mcTemp__1[4] = S"頭";
			__mcTemp__1[5] = S"手套";
			__mcTemp__1[6] = S"鞋子";
			__mcTemp__1[7] = S"上衣";
			__mcTemp__1[8] = S"褲子";
			__mcTemp__1[9] = S"背部";
			__mcTemp__1[10] = S"腰帶";
			__mcTemp__1[11] = S"肩甲";
			__mcTemp__1[12] = S"項鍊 ";
			__mcTemp__1[13] = S"戒子";
			__mcTemp__1[14] = S"耳飾";
			__mcTemp__1[15] = S"副手";
			this->CB_RefineType->Items->AddRange(__mcTemp__1);
			this->CB_RefineType->Location = System::Drawing::Point(53, 16);
			this->CB_RefineType->Name = S"CB_RefineType";
			this->CB_RefineType->Size = System::Drawing::Size(99, 20);
			this->CB_RefineType->TabIndex = 134;
			// 
			// label1
			// 
			this->label1->AutoSize = true;
			this->label1->Location = System::Drawing::Point(14, 19);
			this->label1->Name = S"label1";
			this->label1->Size = System::Drawing::Size(29, 12);
			this->label1->TabIndex = 133;
			this->label1->Text = S"類型";
			// 
			// groupBox2
			// 
			this->groupBox2->Controls->Add(this->numericUpDown36);
			this->groupBox2->Controls->Add(this->numericUpDown35);
			this->groupBox2->Controls->Add(this->numericUpDown34);
			this->groupBox2->Controls->Add(this->numericUpDown33);
			this->groupBox2->Controls->Add(this->numericUpDown32);
			this->groupBox2->Controls->Add(this->CB_AbilityList5);
			this->groupBox2->Controls->Add(this->CB_AbilityList4);
			this->groupBox2->Controls->Add(this->CB_AbilityList3);
			this->groupBox2->Controls->Add(this->CB_AbilityList2);
			this->groupBox2->Controls->Add(this->CB_AbilityList1);
			this->groupBox2->Location = System::Drawing::Point(16, 51);
			this->groupBox2->Name = S"groupBox2";
			this->groupBox2->Size = System::Drawing::Size(328, 156);
			this->groupBox2->TabIndex = 132;
			this->groupBox2->TabStop = false;
			this->groupBox2->Text = S"能力";
			// 
			// numericUpDown36
			// 
			this->numericUpDown36->Location = System::Drawing::Point(249, 120);
			System::Int32 __mcTemp__2[] = new System::Int32[4];
			__mcTemp__2[0] = 100000;
			__mcTemp__2[1] = 0;
			__mcTemp__2[2] = 0;
			__mcTemp__2[3] = 0;
			this->numericUpDown36->Maximum = System::Decimal(__mcTemp__2);
			System::Int32 __mcTemp__3[] = new System::Int32[4];
			__mcTemp__3[0] = 100000;
			__mcTemp__3[1] = 0;
			__mcTemp__3[2] = 0;
			__mcTemp__3[3] = System::Int32::MinValue;
			this->numericUpDown36->Minimum = System::Decimal(__mcTemp__3);
			this->numericUpDown36->Name = S"numericUpDown36";
			this->numericUpDown36->Size = System::Drawing::Size(56, 22);
			this->numericUpDown36->TabIndex = 75;
			this->numericUpDown36->Tag = S"EqTypeValue5";
			System::Int32 __mcTemp__4[] = new System::Int32[4];
			__mcTemp__4[0] = 2;
			__mcTemp__4[1] = 0;
			__mcTemp__4[2] = 0;
			__mcTemp__4[3] = 0;
			this->numericUpDown36->Value = System::Decimal(__mcTemp__4);
			this->numericUpDown36->ValueChanged += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			this->numericUpDown36->Leave += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			// 
			// numericUpDown35
			// 
			this->numericUpDown35->Location = System::Drawing::Point(249, 96);
			System::Int32 __mcTemp__5[] = new System::Int32[4];
			__mcTemp__5[0] = 100000;
			__mcTemp__5[1] = 0;
			__mcTemp__5[2] = 0;
			__mcTemp__5[3] = 0;
			this->numericUpDown35->Maximum = System::Decimal(__mcTemp__5);
			System::Int32 __mcTemp__6[] = new System::Int32[4];
			__mcTemp__6[0] = 100000;
			__mcTemp__6[1] = 0;
			__mcTemp__6[2] = 0;
			__mcTemp__6[3] = System::Int32::MinValue;
			this->numericUpDown35->Minimum = System::Decimal(__mcTemp__6);
			this->numericUpDown35->Name = S"numericUpDown35";
			this->numericUpDown35->Size = System::Drawing::Size(56, 22);
			this->numericUpDown35->TabIndex = 74;
			this->numericUpDown35->Tag = S"EqTypeValue4";
			System::Int32 __mcTemp__7[] = new System::Int32[4];
			__mcTemp__7[0] = 2;
			__mcTemp__7[1] = 0;
			__mcTemp__7[2] = 0;
			__mcTemp__7[3] = 0;
			this->numericUpDown35->Value = System::Decimal(__mcTemp__7);
			this->numericUpDown35->ValueChanged += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			this->numericUpDown35->Leave += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			// 
			// numericUpDown34
			// 
			this->numericUpDown34->Location = System::Drawing::Point(249, 72);
			System::Int32 __mcTemp__8[] = new System::Int32[4];
			__mcTemp__8[0] = 100000;
			__mcTemp__8[1] = 0;
			__mcTemp__8[2] = 0;
			__mcTemp__8[3] = 0;
			this->numericUpDown34->Maximum = System::Decimal(__mcTemp__8);
			System::Int32 __mcTemp__9[] = new System::Int32[4];
			__mcTemp__9[0] = 100000;
			__mcTemp__9[1] = 0;
			__mcTemp__9[2] = 0;
			__mcTemp__9[3] = System::Int32::MinValue;
			this->numericUpDown34->Minimum = System::Decimal(__mcTemp__9);
			this->numericUpDown34->Name = S"numericUpDown34";
			this->numericUpDown34->Size = System::Drawing::Size(56, 22);
			this->numericUpDown34->TabIndex = 73;
			this->numericUpDown34->Tag = S"EqTypeValue3";
			System::Int32 __mcTemp__10[] = new System::Int32[4];
			__mcTemp__10[0] = 2;
			__mcTemp__10[1] = 0;
			__mcTemp__10[2] = 0;
			__mcTemp__10[3] = 0;
			this->numericUpDown34->Value = System::Decimal(__mcTemp__10);
			this->numericUpDown34->ValueChanged += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			this->numericUpDown34->Leave += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			// 
			// numericUpDown33
			// 
			this->numericUpDown33->Location = System::Drawing::Point(249, 48);
			System::Int32 __mcTemp__11[] = new System::Int32[4];
			__mcTemp__11[0] = 100000;
			__mcTemp__11[1] = 0;
			__mcTemp__11[2] = 0;
			__mcTemp__11[3] = 0;
			this->numericUpDown33->Maximum = System::Decimal(__mcTemp__11);
			System::Int32 __mcTemp__12[] = new System::Int32[4];
			__mcTemp__12[0] = 100000;
			__mcTemp__12[1] = 0;
			__mcTemp__12[2] = 0;
			__mcTemp__12[3] = System::Int32::MinValue;
			this->numericUpDown33->Minimum = System::Decimal(__mcTemp__12);
			this->numericUpDown33->Name = S"numericUpDown33";
			this->numericUpDown33->Size = System::Drawing::Size(56, 22);
			this->numericUpDown33->TabIndex = 72;
			this->numericUpDown33->Tag = S"EqTypeValue2";
			System::Int32 __mcTemp__13[] = new System::Int32[4];
			__mcTemp__13[0] = 2;
			__mcTemp__13[1] = 0;
			__mcTemp__13[2] = 0;
			__mcTemp__13[3] = 0;
			this->numericUpDown33->Value = System::Decimal(__mcTemp__13);
			this->numericUpDown33->ValueChanged += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			this->numericUpDown33->Leave += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			// 
			// numericUpDown32
			// 
			this->numericUpDown32->Location = System::Drawing::Point(249, 24);
			System::Int32 __mcTemp__14[] = new System::Int32[4];
			__mcTemp__14[0] = 100000;
			__mcTemp__14[1] = 0;
			__mcTemp__14[2] = 0;
			__mcTemp__14[3] = 0;
			this->numericUpDown32->Maximum = System::Decimal(__mcTemp__14);
			System::Int32 __mcTemp__15[] = new System::Int32[4];
			__mcTemp__15[0] = 100000;
			__mcTemp__15[1] = 0;
			__mcTemp__15[2] = 0;
			__mcTemp__15[3] = System::Int32::MinValue;
			this->numericUpDown32->Minimum = System::Decimal(__mcTemp__15);
			this->numericUpDown32->Name = S"numericUpDown32";
			this->numericUpDown32->Size = System::Drawing::Size(56, 22);
			this->numericUpDown32->TabIndex = 71;
			this->numericUpDown32->Tag = S"EqTypeValue1";
			System::Int32 __mcTemp__16[] = new System::Int32[4];
			__mcTemp__16[0] = 2;
			__mcTemp__16[1] = 0;
			__mcTemp__16[2] = 0;
			__mcTemp__16[3] = 0;
			this->numericUpDown32->Value = System::Decimal(__mcTemp__16);
			this->numericUpDown32->ValueChanged += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			this->numericUpDown32->Leave += new System::EventHandler(this, &RefineTableForm::GetValue_ValueChanged);
			// 
			// CB_AbilityList5
			// 
			this->CB_AbilityList5->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_AbilityList5->ItemHeight = 12;
			this->CB_AbilityList5->Location = System::Drawing::Point(16, 120);
			this->CB_AbilityList5->MaxDropDownItems = 1;
			this->CB_AbilityList5->Name = S"CB_AbilityList5";
			this->CB_AbilityList5->Size = System::Drawing::Size(228, 20);
			this->CB_AbilityList5->TabIndex = 8;
			this->CB_AbilityList5->Tag = S"EqType5";
			this->CB_AbilityList5->SelectedIndexChanged += new System::EventHandler(this, &RefineTableForm::GetIndex_SelectedIndexChanged);
			this->CB_AbilityList5->Click += new System::EventHandler(this, &RefineTableForm::Select_Ability_Click);
			// 
			// CB_AbilityList4
			// 
			this->CB_AbilityList4->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_AbilityList4->ItemHeight = 12;
			this->CB_AbilityList4->Location = System::Drawing::Point(16, 96);
			this->CB_AbilityList4->MaxDropDownItems = 1;
			this->CB_AbilityList4->Name = S"CB_AbilityList4";
			this->CB_AbilityList4->Size = System::Drawing::Size(228, 20);
			this->CB_AbilityList4->TabIndex = 6;
			this->CB_AbilityList4->Tag = S"EqType4";
			this->CB_AbilityList4->SelectedIndexChanged += new System::EventHandler(this, &RefineTableForm::GetIndex_SelectedIndexChanged);
			this->CB_AbilityList4->Click += new System::EventHandler(this, &RefineTableForm::Select_Ability_Click);
			// 
			// CB_AbilityList3
			// 
			this->CB_AbilityList3->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_AbilityList3->ItemHeight = 12;
			this->CB_AbilityList3->Location = System::Drawing::Point(16, 72);
			this->CB_AbilityList3->MaxDropDownItems = 1;
			this->CB_AbilityList3->Name = S"CB_AbilityList3";
			this->CB_AbilityList3->Size = System::Drawing::Size(228, 20);
			this->CB_AbilityList3->TabIndex = 4;
			this->CB_AbilityList3->Tag = S"EqType3";
			this->CB_AbilityList3->SelectedIndexChanged += new System::EventHandler(this, &RefineTableForm::GetIndex_SelectedIndexChanged);
			this->CB_AbilityList3->Click += new System::EventHandler(this, &RefineTableForm::Select_Ability_Click);
			// 
			// CB_AbilityList2
			// 
			this->CB_AbilityList2->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_AbilityList2->ItemHeight = 12;
			this->CB_AbilityList2->Location = System::Drawing::Point(16, 48);
			this->CB_AbilityList2->MaxDropDownItems = 1;
			this->CB_AbilityList2->Name = S"CB_AbilityList2";
			this->CB_AbilityList2->Size = System::Drawing::Size(228, 20);
			this->CB_AbilityList2->TabIndex = 2;
			this->CB_AbilityList2->Tag = S"EqType2";
			this->CB_AbilityList2->SelectedIndexChanged += new System::EventHandler(this, &RefineTableForm::GetIndex_SelectedIndexChanged);
			this->CB_AbilityList2->Click += new System::EventHandler(this, &RefineTableForm::Select_Ability_Click);
			// 
			// CB_AbilityList1
			// 
			this->CB_AbilityList1->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
			this->CB_AbilityList1->ItemHeight = 12;
			this->CB_AbilityList1->Location = System::Drawing::Point(16, 24);
			this->CB_AbilityList1->MaxDropDownItems = 1;
			this->CB_AbilityList1->Name = S"CB_AbilityList1";
			this->CB_AbilityList1->Size = System::Drawing::Size(228, 20);
			this->CB_AbilityList1->TabIndex = 0;
			this->CB_AbilityList1->Tag = S"EqType1";
			this->CB_AbilityList1->SelectedIndexChanged += new System::EventHandler(this, &RefineTableForm::GetIndex_SelectedIndexChanged);
			this->CB_AbilityList1->Click += new System::EventHandler(this, &RefineTableForm::Select_Ability_Click);
			// 
			// textBox1
			// 
			this->textBox1->Location = System::Drawing::Point(401, 14);
			this->textBox1->Name = S"textBox1";
			this->textBox1->Size = System::Drawing::Size(48, 22);
			this->textBox1->TabIndex = 138;
			this->textBox1->Tag = S"ExEqPowerRate";
			this->textBox1->TextChanged += new System::EventHandler(this, &RefineTableForm::GetIntValue_TextChanged);
			// 
			// label3
			// 
			this->label3->AutoSize = true;
			this->label3->Location = System::Drawing::Point(321, 19);
			this->label3->Name = S"label3";
			this->label3->Size = System::Drawing::Size(74, 12);
			this->label3->TabIndex = 137;
			this->label3->Text = S"裝備能力加%";
			// 
			// RefineTableForm
			// 
			this->AutoScaleBaseSize = System::Drawing::Size(5, 15);
			this->ClientSize = System::Drawing::Size(577, 491);
			this->Controls->Add(this->panel1);
			this->Name = S"RefineTableForm";
			this->Text = S"RefineTableForm";
			this->panel1->ResumeLayout(false);
			this->panel1->PerformLayout();
			this->groupBox2->ResumeLayout(false);
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown36))->EndInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown35))->EndInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown34))->EndInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown33))->EndInit();
			(__try_cast<System::ComponentModel::ISupportInitialize*  >(this->numericUpDown32))->EndInit();
			this->ResumeLayout(false);

		}		




#ifndef _Just_Show_DotNet_Form_
    private:
        System::Void GetStr_TextChanged(System::Object *  sender, System::EventArgs *  e);
        System::Void GetValue_ValueChanged(System::Object *  sender, System::EventArgs *  e);
        System::Void ChangeFlag(System::Object *  sender, System::EventArgs *  e);
        System::Void GetIndex_SelectedIndexChanged(System::Object *  sender, System::EventArgs *  e);
        System::Void GetIntValue_TextChanged(System::Object *  sender, System::EventArgs *  e);
        System::Void BaseForm_Closing(System::Object *  sender, System::ComponentModel::CancelEventArgs *  e);
        System::Void SearchObj_DClick(System::Object *  sender, System::EventArgs *  e);

        System::Void SearchMagicClick(System::Object *  sender, System::EventArgs *  e);
        System::Void SearchItemClick(System::Object *  sender, System::EventArgs *  e);
        System::Void SearchWeaponClick(System::Object *  sender, System::EventArgs *  e);
        System::Void SearchArmorClick(System::Object *  sender, System::EventArgs *  e);
        System::Void SearchImageClick(System::Object *  sender, System::EventArgs *  e);
		System::Void Select_Ability_Click(System::Object*  sender, System::EventArgs*  e);
#endif
    protected:
        //######################################################################################################
        //主要需要繼承的涵式
        virtual ReaderClass< DB_GameObjDbStruct >* ObjReader( );       
        virtual void    OnActive();
        virtual void    OnSelectObj( bool LockOk );
        //輸出時額外設定
        virtual void    OnOutputObjSetting( DB_GameObjDbStruct* TempObj );
        virtual void    OnTimeProc();
        virtual int     ObjSize();
        virtual void    OnValueChange();
        //######################################################################################################

};
}