1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#region
 
using System;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using CSFrameworkV5.Common;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Columns;
 
#endregion
 
namespace CSFrameworkV5.Library.UserControls
{
    /// <summary>
    ///     返回的数据
    /// </summary>
    /// <param name="RetrunStr"></param>
    public delegate void OnReturnString(string RetrunStr);
 
    /// <summary>
    ///     标准编号名称选择框
    /// </summary>
    public partial class ucCodeName : UserControl
    {
        private OnReturnString _OnRowClick;
 
        private string ReturnFileName;
 
        public ucCodeName()
        {
            InitializeComponent();
        }
 
        public PopupContainerControl PopupContainer => popupContainerControl1;
 
        /// <summary>
        ///     绑定数据源
        /// </summary>
        /// <param name="dt">数据源</param>
        /// <param name="colName1">列1的表头名称</param>
        /// <param name="colName2">列2的表头名称</param>
        /// <param name="FileName1">列1的数据源字段</param>
        /// <param name="FileName2">列2的数据源字段</param>
        /// <param name="returnFileName">返回的字段</param>
        public void DataSource(DataTable dt, string[] colNames,
            string[] FileNames, string returnFileName)
        {
            try
            {
                gv_Popup.Columns.Clear();
                for (var i = 0; i < colNames.Length; i++)
                {
                    var col = new GridColumn();
                    col.Caption = colNames[i];
                    col.FieldName = FileNames[i];
                    col.Visible = true;
                    col.VisibleIndex = gv_Popup.Columns.Count;
                    gv_Popup.Columns.Add(col);
                }
 
                ReturnFileName = returnFileName;
                gc_PopUp.DataSource = dt;
            }
            catch (Exception e)
            {
                Msg.Warning(e.Message);
            }
        }
 
        private void gc_PopUp_Click(object sender, EventArgs e)
        {
            if (_OnRowClick != null)
            {
                popupContainerControl1.Hide();
                var rowHandle = gv_Popup.FocusedRowHandle;
                if (rowHandle < 0) return;
 
                var dr = (gc_PopUp.DataSource as DataTable).Rows[rowHandle];
                _OnRowClick(ConvertEx.ToString(dr[ReturnFileName]));
                if (popupContainerControl1.OwnerEdit != null)
                    popupContainerControl1.OwnerEdit.ClosePopup();
            }
        }
 
        [Description("当点击一条记录时发生。")]
        public event OnReturnString OnRowClick
        {
            add => _OnRowClick = value;
            remove => _OnRowClick = null;
        }
    }
}