FormXML.cs

using System;
using System.Data;
using System.IO;
using System.Media;
using System.Windows.Forms;

namespace WindowsMedia
{
    public partial class FormXML : Form
    {
        private DataTable table;

        public FormXML()
        {
            #region
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.ShowInTaskbar = false;
            gridViewXML.AllowUserToAddRows = true; // 隐藏添加行。
            gridViewXML.AllowUserToDeleteRows = false; // 禁用删除行。
            gridViewXML.AllowUserToOrderColumns = false; // 禁用列排序。
            gridViewXML.MultiSelect = false; // 仅选择一个单元格。
            gridViewXML.ReadOnly = false; // 启用编辑单元格。
            gridViewXML.EditMode = DataGridViewEditMode.EditProgrammatically; // 仅在调用 BeginEdit() 时开始编辑。
            gridViewXML.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing; // 禁用调整列标头的宽度。
            gridViewXML.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells; // 自动调整行高。
            gridViewXML.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; // 自动调整列宽。
            gridViewXML.SelectionMode = DataGridViewSelectionMode.FullRowSelect; // 选定整个行。
            table = new DataTable("Online");
            table.Locale = System.Globalization.CultureInfo.InvariantCulture;
            DataColumn column = table.Columns.Add("TV", typeof(string));
            table.Columns.Add("MMS", typeof(string));
            table.Constraints.Add("PK", column, true);
            FileInfo info = new FileInfo(Path.Combine(Application.StartupPath, "TV.xml"));
            if (info.Exists)
                using (StreamReader reader = info.OpenText())
                {
                    table.BeginLoadData();
                    table.ReadXml(reader);
                    table.EndLoadData();
                    table.AcceptChanges();
                    gridViewXML.DataSource = table.DefaultView;
                }
            #endregion
        }

        #region URL
        private void gridViewXML_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (-1 < e.RowIndex && e.RowIndex < gridViewXML.NewRowIndex)
            {
                AxWMPLib.AxWindowsMediaPlayer axWMPlayer = this.Tag as AxWMPLib.AxWindowsMediaPlayer;
                axWMPlayer.close();
                axWMPlayer.URL = gridViewXML[1, e.RowIndex].Value as string;
                this.Owner.Text = gridViewXML[0, e.RowIndex].Value as string;
            }
        }
        #endregion

        #region DataError
        private void gridViewXML_DataError(object sender, DataGridViewDataErrorEventArgs e)
        {
            MessageBox.Show(e.Exception.Message);
            e.ThrowException = false; // 不引发异常。
        }
        #endregion

        #region AddData
        private void toolButtonAdd_Click(object sender, EventArgs e)
        {
            if (gridViewXML.IsCurrentRowDirty)
            {
                SystemSounds.Beep.Play();
                return;
            }
            gridViewXML.FirstDisplayedScrollingRowIndex = gridViewXML.NewRowIndex;
            gridViewXML.CurrentCell = gridViewXML[0, gridViewXML.NewRowIndex];
            gridViewXML.BeginEdit(false);
        }
        #endregion

        #region EditData
        private void toolButtonEdit_Click(object sender, EventArgs e)
        {
            if (gridViewXML.CurrentCellAddress.Y > -1)
            {
                gridViewXML.FirstDisplayedScrollingRowIndex = gridViewXML.CurrentCellAddress.Y;
                gridViewXML.BeginEdit(true);
            }
        }

        private void gridViewXML_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (Convert.IsDBNull(gridViewXML.CurrentCell.Value))
            {
                DataRowView rowView = gridViewXML.CurrentRow.DataBoundItem as DataRowView;
                if (rowView != null && !rowView.IsNew)
                    rowView.Row.RejectChanges();
            }
        }
        #endregion

        #region DeleteData
        private void toolButtonDelete_Click(object sender, EventArgs e)
        {
            int index = gridViewXML.CurrentCellAddress.Y;
            if (index < 0)
                return;
            if (gridViewXML.IsCurrentRowDirty || gridViewXML.NewRowIndex == index)
            {
                SystemSounds.Beep.Play();
                return;
            }
            if (MessageBox.Show(string.Format("确实要删除“{0}”吗?", gridViewXML[0, index].Value), "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                gridViewXML.Rows.RemoveAt(index);
        }
        #endregion

        #region SaveData
        private void toolButtonSave_Click(object sender, EventArgs e)
        {
            if (gridViewXML.IsCurrentRowDirty || gridViewXML.NewRowIndex == gridViewXML.CurrentCellAddress.Y)
            {
                SystemSounds.Beep.Play();
                return;
            }
            FileInfo info = new FileInfo(Path.Combine(Application.StartupPath, "TV.xml"));
            if (info.Exists)
                info.Attributes = FileAttributes.Normal;
            using (StreamWriter writer = info.CreateText())
            {
                table.AcceptChanges();
                table.WriteXml(writer, XmlWriteMode.IgnoreSchema);
            }
        }
        #endregion
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值