Files
ATV_STDLabelAttach/Handler/Project/Dialog/fDataBufferSIDRef.cs
2025-07-17 16:11:46 +09:00

92 lines
3.1 KiB
C#

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;
namespace Project.Dialog
{
public partial class fDataBufferSIDRef : Form
{
Boolean useMonitor = false;
public fDataBufferSIDRef()
{
InitializeComponent();
this.lvSID.Items.Clear();
var list = PUB.Result.SIDReference.Items;
foreach (var item in list)
{
var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid
lv.SubItems.Add(item.kpc.ToString()); //count
lv.SubItems.Add(item.unit);
}
PUB.Result.SIDReference.PropertyChanged += sidreflist_PropertyChanged;
useMonitor = true;
}
public fDataBufferSIDRef(List<Class.SIDDataRef> items)
{
InitializeComponent();
this.lvSID.Items.Clear();
foreach (var item in items)
{
var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid
lv.SubItems.Add(item.kpc.ToString()); //count
lv.SubItems.Add(item.unit);
}
}
void fDataBufferSID_FormClosed(object sender, FormClosedEventArgs e)
{
if (useMonitor)
PUB.Result.SIDReference.PropertyChanged -= sidreflist_PropertyChanged;
}
private void fDataBuffer_Load(object sender, EventArgs e)
{
this.FormClosed += fDataBufferSID_FormClosed;
}
void sidreflist_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (this.InvokeRequired)
{
var p = new PropertyChangedEventArgs(e.PropertyName);
this.BeginInvoke(new PropertyChangedEventHandler(sidreflist_PropertyChanged), new object[] { sender, p });
return;
}
var pname = e.PropertyName.Split(':');
if (pname[0].ToLower() == "add")
{
var sid = pname[1];
var item = PUB.Result.SIDReference.Get(pname[1]);
var lv = this.lvSID.Items.Add(sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, sid), 0);
lv.SubItems.Add(item.kpc.ToString());
lv.SubItems.Add(item.unit);//
lv.EnsureVisible();
}
else if (pname[0].ToLower() == "clear")
{
this.lvSID.Items.Clear();
}
else if (pname[0].ToLower() == "set")
{
var sid = pname[1];
var cnt = PUB.Result.SIDReference.Get(sid);
var items = this.lvSID.Items.Find(sid, false);
if (items != null && items.Length > 0)
{
foreach (var item in items)
{
item.SubItems[1].Text = cnt.ToString();
}
}
}
}
}
}