程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#中TreeView類操作全攻略(三)

C#中TreeView類操作全攻略(三)

編輯:關於C語言
treevIEw|攻略using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using com.prm.clIEnt.tools;
using System.Data.OracleClIEnt;
//using com.prm.clIEnt.common;

namespace com.prm.clIEnt.forms
{
/// <summary>
/// SM_EditFunction 的摘要說明。
/// </summary>
public class SM_EditFunction: System.Windows.Forms.Form
{
private System.Windows.Forms.Label lbl_Name;
private System.Windows.Forms.TextBox txt_Name;
private System.Windows.Forms.Label lbl_Tag;
private System.Windows.Forms.TextBox txt_Tag;
private System.Windows.Forms.CheckBox ckb_IsInterface;
private System.Windows.Forms.Label lbl_IsInterface;
private System.Windows.Forms.Label lbl_Type;
private System.Windows.Forms.Label lbl_FunEntity;
private System.Windows.Forms.ComboBox cbo_Type;
private System.Windows.Forms.TextBox txt_FunEntity;
private System.Windows.Forms.Label lbl_BelongTo;
private System.Windows.Forms.TextBox txt_BelongTo;
private System.Windows.Forms.TextBox txt_Detail;
private System.Windows.Forms.Label lbl_Detail;
private System.Windows.Forms.Button btn_Confirm;
private System.Windows.Forms.Button btn_Cancel;
private System.Windows.Forms.Button btn_Help;

//用來保存原始的功能記錄
private FunctionTable oriFuncItem;

//用來保存數字字典功能類別的數據
ClIEntDictionary[] DIC_funcType;
//用來保存Connection屬性
private OracleConnection funcTableConn;
//用來保存修改後的記錄
private FunctionTable newFuncItem;
public FunctionTable NewFuncItem {get {return newFuncItem;}}
//用來判斷是否用戶進行了修改
private bool isEdit=false;
public bool IsEdit {get {return isEdit;}}
/// <summary>
/// 必需的設計器變量。
/// </summary>
private System.ComponentModel.Container components = null;

/// <summary>
/// 構造函數,通過editFuncItem參數和dic_funcType對窗口進行初始化值
/// </summary>
public SM_EditFunction(FunctionTable editFuncItem,ClIEntDictionary[] dic_funcType)
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();
//用參數值對本窗口相應的變量進行賦值保存
oriFuncItem=editFuncItem;
DIC_funcType=dic_funcType;
const string VALUEMEMBER="valueMember",DISPLAYMEMBER="displayMember",NULLTEXT="";
cbo_Type.DataSource = DIC_funcType;
cbo_Type.ValueMember = VALUEMEMBER;
cbo_Type.DisplayMember = DISPLAYMEMBER;

DataAccessObject funcTableAccessObject=new DataAccessObject();
funcTableConn=funcTableAccessObject.Connection;

this.txt_Name.Text=oriFuncItem.funcName;
this.txt_Tag.Text=oriFuncItem.funcTag;
if (oriFuncItem.funcIsInterface =="0")
{
this.ckb_IsInterface.Checked=false;
}
else
{
this.ckb_IsInterface.Checked=true;
}
this.cbo_Type.SelectedValue=oriFuncItem.funcType;
this.txt_FunEntity.Text=oriFuncItem.funcEntity;
this.txt_BelongTo.Text=oriFuncItem.funcBelongTo;
this.txt_Detail.Text=oriFuncItem.funcDetail;

}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SM_EditFunction));
this.lbl_Name = new System.Windows.Forms.Label();
this.lbl_Tag = new System.Windows.Forms.Label();
this.lbl_Type = new System.Windows.Forms.Label();
this.lbl_FunEntity = new System.Windows.Forms.Label();
this.lbl_BelongTo = new System.Windows.Forms.Label();
this.txt_Name = new System.Windows.Forms.TextBox();
this.txt_Tag = new System.Windows.Forms.TextBox();
this.cbo_Type = new System.Windows.Forms.ComboBox();
this.txt_BelongTo = new System.Windows.Forms.TextBox();
this.txt_Detail = new System.Windows.Forms.TextBox();
this.lbl_Detail = new System.Windows.Forms.Label();
this.ckb_IsInterface = new System.Windows.Forms.CheckBox();
this.btn_Confirm = new System.Windows.Forms.Button();
this.btn_Cancel = new System.Windows.Forms.Button();
this.btn_Help = new System.Windows.Forms.Button();
this.lbl_IsInterface = new System.Windows.Forms.Label();
this.txt_FunEntity = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// lbl_Name
//
this.lbl_Name.Location = new System.Drawing.Point(56, 24);
this.lbl_Name.Name = "lbl_Name";
this.lbl_Name.Size = new System.Drawing.Size(48, 23);
this.lbl_Name.TabIndex = 0;
this.lbl_Name.Text = "名稱:";
//
// lbl_Tag
//
this.lbl_Tag.Location = new System.Drawing.Point(56, 56);
this.lbl_Tag.Name = "lbl_Tag";
this.lbl_Tag.Size = new System.Drawing.Size(48, 23);
this.lbl_Tag.TabIndex = 1;
this.lbl_Tag.Text = "標識:";
//
// lbl_Type
//
this.lbl_Type.Location = new System.Drawing.Point(56, 112);
this.lbl_Type.Name = "lbl_Type";
this.lbl_Type.Size = new System.Drawing.Size(48, 23);
this.lbl_Type.TabIndex = 2;
this.lbl_Type.Text = "類別:";
//
// lbl_FunEntity
//
this.lbl_FunEntity.Location = new System.Drawing.Point(32, 144);
this.lbl_FunEntity.Name = "lbl_FunEntity";
this.lbl_FunEntity.Size = new System.Drawing.Size(72, 23);
this.lbl_FunEntity.TabIndex = 3;
this.lbl_FunEntity.Text = " 功能體:";
//
// lbl_BelongTo
//
this.lbl_BelongTo.Location = new System.Drawing.Point(8, 176);
this.lbl_BelongTo.Name = "lbl_BelongTo";
this.lbl_BelongTo.Size = new System.Drawing.Size(96, 23);
this.lbl_BelongTo.TabIndex = 4;
this.lbl_BelongTo.Text = "所屬窗口標識:";
//
// txt_Name
//
this.txt_Name.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Name.Location = new System.Drawing.Point(104, 16);
this.txt_Name.Name = "txt_Name";
this.txt_Name.Size = new System.Drawing.Size(152, 21);
this.txt_Name.TabIndex = 5;
this.txt_Name.Text = "";
//
// txt_Tag
//
this.txt_Tag.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Tag.Location = new System.Drawing.Point(104, 48);
this.txt_Tag.Name = "txt_Tag";
this.txt_Tag.Size = new System.Drawing.Size(152, 21);
this.txt_Tag.TabIndex = 6;
this.txt_Tag.Text = "";
//
// cbo_Type
//
this.cbo_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbo_Type.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.cbo_Type.Location = new System.Drawing.Point(104, 104);
this.cbo_Type.Name = "cbo_Type";
this.cbo_Type.Size = new System.Drawing.Size(152, 20);
this.cbo_Type.TabIndex = 7;
//
// txt_BelongTo
//
this.txt_BelongTo.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_BelongTo.Location = new System.Drawing.Point(104, 168);
this.txt_BelongTo.Name = "txt_BelongTo";
this.txt_BelongTo.Size = new System.Drawing.Size(152, 21);
this.txt_BelongTo.TabIndex = 8;
this.txt_BelongTo.Text = "";
//
// txt_Detail
//
this.txt_Detail.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Detail.Location = new System.Drawing.Point(104, 200);
this.txt_Detail.Name = "txt_Detail";
this.txt_Detail.Size = new System.Drawing.Size(152, 21);
this.txt_Detail.TabIndex = 9;
this.txt_Detail.Text = "";
//
// lbl_Detail
//
this.lbl_Detail.Location = new System.Drawing.Point(56, 208);
this.lbl_Detail.Name = "lbl_Detail";
this.lbl_Detail.Size = new System.Drawing.Size(48, 23);
this.lbl_Detail.TabIndex = 10;
this.lbl_Detail.Text = "描述:";
//
// ckb_IsInterface
//
this.ckb_IsInterface.Location = new System.Drawing.Point(104, 72);
this.ckb_IsInterface.Name = "ckb_IsInterface";
this.ckb_IsInterface.Size = new System.Drawing.Size(24, 24);
this.ckb_IsInterface.TabIndex = 11;
//
// btn_Confirm
//
this.btn_Confirm.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Confirm.BackgroundImage")));
this.btn_Confirm.Location = new System.Drawing.Point(40, 240);
this.btn_Confirm.Name = "btn_Confirm";
this.btn_Confirm.Size = new System.Drawing.Size(64, 22);
this.btn_Confirm.TabIndex = 12;
this.btn_Confirm.Text = "確 定";
this.btn_Confirm.Click += new System.EventHandler(this.btn_Confirm_Click);
//
// btn_Cancel
//
this.btn_Cancel.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Cancel.BackgroundImage")));
this.btn_Cancel.Location = new System.Drawing.Point(128, 240);
this.btn_Cancel.Name = "btn_Cancel";
this.btn_Cancel.Size = new System.Drawing.Size(64, 22);
this.btn_Cancel.TabIndex = 13;
this.btn_Cancel.Text = "取 消";
this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
//
// btn_Help
//
this.btn_Help.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Help.BackgroundImage")));
this.btn_Help.Location = new System.Drawing.Point(216, 240);
this.btn_Help.Name = "btn_Help";
this.btn_Help.Size = new System.Drawing.Size(64, 22);
this.btn_Help.TabIndex = 14;
this.btn_Help.Text = "幫 助";
//
// lbl_IsInterface
//
this.lbl_IsInterface.Location = new System.Drawing.Point(32, 80);
this.lbl_IsInterface.Name = "lbl_IsInterface";
this.lbl_IsInterface.Size = new System.Drawing.Size(72, 23);
this.lbl_IsInterface.TabIndex = 15;
this.lbl_IsInterface.Text = "有無界面:";
//
// txt_FunEntity
//
this.txt_FunEntity.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_FunEntity.Location = new System.Drawing.Point(104, 136);
this.txt_FunEntity.Name = "txt_FunEntity";
this.txt_FunEntity.Size = new System.Drawing.Size(152, 21);
this.txt_FunEntity.TabIndex = 16;
this.txt_FunEntity.Text = "";
//
// SM_EditFunction
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(242)), ((System.Byte)(247)), ((System.Byte)(250)));
this.ClIEntSize = new System.Drawing.Size(320, 273);
this.Controls.Add(this.txt_FunEntity);
this.Controls.Add(this.lbl_IsInterface);
this.Controls.Add(this.btn_Help);
this.Controls.Add(this.btn_Cancel);
this.Controls.Add(this.btn_Confirm);
this.Controls.Add(this.ckb_IsInterface);
this.Controls.Add(this.lbl_Detail);
this.Controls.Add(this.txt_Detail);
this.Controls.Add(this.txt_BelongTo);
this.Controls.Add(this.cbo_Type);
this.Controls.Add(this.txt_Tag);
this.Controls.Add(this.txt_Name);
this.Controls.Add(this.lbl_BelongTo);
this.Controls.Add(this.lbl_FunEntity);
this.Controls.Add(this.lbl_Type);
this.Controls.Add(this.lbl_Tag);
this.Controls.Add(this.lbl_Name);
this.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "SM_EditFunction";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "修改功能";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 按確定按鈕後,先檢查輸入的數據的合法性;接著生成一個FunctionTable類的實例
/// 並根據輸入進行 相應的賦值,接著調用UpdateFuncItem過程對功能表進行相應的修改
/// </summary>
private void btn_Confirm_Click(object sender, System.EventArgs e)
{
if(txt_Name.Text=="")
{
MessageBox.Show("功能名稱不能為空");
return;
}
if(txt_Tag.Text=="")
{
MessageBox.Show("功能標識不能為空");
return;
}
if(this.txt_FunEntity.Text=="")
{
MessageBox.Show("功能體不能為空");
return;
}
newFuncItem=new FunctionTable();
newFuncItem.funcName=txt_Name.Text.Trim();
newFuncItem.funcTag=txt_Tag.Text.Trim();
if(this.ckb_IsInterface.Checked==true)
{
newFuncItem.funcIsInterface="1";
}
else
{
newFuncItem.funcIsInterface="0";
}
newFuncItem.funcType=this.cbo_Type.SelectedValue.ToString().Trim();
newFuncItem.funcEntity=this.txt_FunEntity.Text.Trim();
newFuncItem.funcBelongTo=this.txt_BelongTo.Text.Trim();
newFuncItem.funcDetail=this.txt_Detail.Text.Trim();
newFuncItem.funcIsExpand=oriFuncItem.funcIsExpand;
newFuncItem.funcVer=oriFuncItem.funcVer;
newFuncItem.funcID=oriFuncItem.funcID;
newFuncItem.funcFatherID=oriFuncItem.funcFatherID;
UpdateFuncItem(newFuncItem);
isEdit=true;
this.Close();

}

/// <summary>
/// 對功能表進行修改,利用了回滾功能,即如果修改不成功則功能表
/// 恢復為修改前的狀態
/// </summary>
/// <param name="newItem">要修改的新的紀錄信息</param>
private void UpdateFuncItem(FunctionTable newItem)
{
funcTableConn.Open();
System.Data.OracleClIEnt.OracleTransaction myTran = funcTableConn.BeginTransaction ();
try
{
OracleCommand cmd = new OracleCommand ();
cmd.CommandText ="UPDATE 功能 set 功能標識='"+newItem.funcTag
+"', 功能名稱='"+newItem.funcName
+"', 功能簡述='"+newItem.funcDetail
+"', 所屬窗體='"+newItem.funcBelongTo
+"', 有無界面='"+newItem.funcIsInterface
+"', 功能類別='"+newItem.funcType
+"', 功能體='"+newItem.funcEntity
+"', 上級功能ID='"+newItem.funcFatherID
+"', 可否展顯='"+newItem.funcIsExpand
+"', 版本號='"+newItem.funcVer
+"' where 功能ID = '"+newItem.funcID+"'";
cmd.Transaction = myTran;
cmd.Connection =funcTableConn;
cmd.ExecuteNonQuery ();
myTran.Commit ();
}
catch(Exception ee)
{
try
{
myTran.Rollback();
}
catch (OracleException ex)
{
if (myTran.Connection != null)
{
MessageBox.Show ("在回滾時發生 " + ex.GetType() +" 異常!",
"警告",System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
}

MessageBox.Show ("發生" + ee.GetType() +
"異常\n" +"修改記錄失敗!","警告",System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
finally
{
funcTableConn.Close();
}
}

private void btn_Cancel_Click(object sender, System.EventArgs e)
{
//用戶點擊了取消鍵,則表示沒有進行修改
isEdit=false;
this.Close();
}

}
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved