如果我的Customer对象具有Payment属性,它是自定义枚举类型和十进制值的字典
Customer.cs
public enum CustomerPayingMode
{
CreditCard = 1,
VirtualCoins = 2,
PayPal = 3
}
public Dictionary<CustomerPayingMode, decimal> Payment;
Run Code Online (Sandbox Code Playgroud)
在客户端代码中,我有向字典添加值的问题,尝试这样
Customer cust = new Customer();
cust.Payment = new Dictionary<CustomerPayingMode,decimal>()
.Add(CustomerPayingMode.CreditCard, 1M);
Run Code Online (Sandbox Code Playgroud) 在KeyPressEvent我知道如何当检测CTRL键被按下,但后来我想CTRL+ [什么?]。
使用CTRL+ A、KeyChar= 1、CTRL+B给出 2 等。检测CTRL+a输入的最佳方法是什么?
这是我的代码:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (ModifierKeys.HasFlag(Keys.Control))
{
Console.Write("(Ctrl) ");
}
Console.WriteLine(Convert.ToString(Convert.ToInt32(e.KeyChar)));
}
Run Code Online (Sandbox Code Playgroud)
输入a, b, CTRL+ a, CTRL+b给出:
97
98
(Ctrl) 1
(Ctrl) 2
Run Code Online (Sandbox Code Playgroud) 我正在制作我的第一个wpf应用程序,它现在只是实现了一个带有纹理的"地板",从上面看.在运行时我得到这个例外:
在System.Windows.Baml2006.TypeConverterMarkupExtension'上提供了一个异常'.行号'49'和行位置'38'
他们谈论的界限是
<ImageBrush ImageSource="/wood1_1000X1000.jpg" />.
Run Code Online (Sandbox Code Playgroud)
我也试过png扩展.图像的分辨率为1000 x 1000.
当我使用 IE10 时,一切都很好。但是 IE11、固定按钮和“Ctrl+P”不起作用。我的系统是 Windows 7 Ultimate 64 位 SP1。
通常在使用Linq时,我通常会使用Where或类似过滤掉空/空记录.但是,我需要在多个条件上订购一个列表,并按顺序保留列表中的所有项目.
以下内容仅.Dimension1.Count > 0适用于列表中的所有项目
var orderedList = mList.Elements
.OrderBy(x => x.Property1)
.ThenBy(x => x.Property2)
.ThenBy(x => x.Property3.Dimension1[0].Value2)
.ToList();
Run Code Online (Sandbox Code Playgroud)
如果有任何元素,Dimension1.Count == 0那么我得到错误:
'指数超出范围.必须是非负数且小于集合的大小.
这是预期的,因为数组没有标注尺寸.
当列表包含有哪些项目时,有没有办法使这项工作.Dimension1.Count = 0?
请注意,这Dimension1[0].Value2是double类型.
我有一个TextBox,我在其中放了一个短语,它可以是任务的描述,也可以是任务的id.我想使用此TextBox中的文本过滤列表.但是当我将文本放入此TextBox时,过滤不起作用,并且DataGridView中的集合不会更改.
有什么不对?
public void BindData()
{
var emptyBindingSource = new BindingSource();
dataGridViewTaskList.AutoGenerateColumns = false;
dataGridViewTaskList.DataSource = emptyBindingSource;
var taskList = GetTasks();
_bindingSource = new BindingSource();
_bindingSource.DataSource=taskList.Response;
dataGridViewTaskList.AutoGenerateColumns = false;
dataGridViewTaskList.DataSource = _bindingSource.DataSource;
if (dataGridViewTaskList.Columns["gridViewColumnId"] == null)
dataGridViewTaskList.Columns.Add(new DataGridViewColumn() {Name = "gridViewColumnId"});
else
dataGridViewTaskList.Columns["gridViewColumnId"].DataPropertyName = "Id";
if (dataGridViewTaskList.Columns["gridViewColumnDescription"] == null)
dataGridViewTaskList.Columns.Add(new DataGridViewColumn() {Name = "gridViewColumnDescription"});
else
dataGridViewTaskList.Columns["gridViewColumnDescription"].DataPropertyName = "Description";
}
private void tbSearchedPhraseOrId_TextChanged(object sender, EventArgs e)
{
_bindingSource.Filter = string.Format("Id = '{0}'", tbSearchedPhraseOrId.Text);
}
Run Code Online (Sandbox Code Playgroud)
我在BindData方法中添加了以下内容,它也不起作用:
_bindingSource.Filter = string.Format("Id LIKE '%{0}%'", "23"); …Run Code Online (Sandbox Code Playgroud) 我的表单层次结构是这样的:
Form -> TableLayoutOne -> TableLayoutTwo -> Panel -> ListBox
Run Code Online (Sandbox Code Playgroud)
在ListBox的MouseMove事件中,我有这样的代码:
Point cursosPosition2 = PointToClient(new Point(Cursor.Position.X, Cursor.Position.Y));
Control crp = this.GetChildAtPoint(cursosPosition2);
if (crp != null)
MessageBox.Show(crp.Name);
Run Code Online (Sandbox Code Playgroud)
MessageBox向我显示"TableLayoutOne",但我希望它向我显示"ListBox".我的代码在哪里,我错了?谢谢.
我正在学习如何使用自定义验证器进行服务器端验证,但我似乎无法让它工作。每当我单击按钮时,文本框为空,错误消息就不会显示。我究竟做错了什么?
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" ControlToValidate="TextBox1"
OnServerValidate="CustomValidator1_ServerValidate" ValidationGroup="ValidateGp"
ErrorMessage="This is a custom error validator" runat="server"/>
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="ValidateGp"/>
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (args.Value.Equals(string.Empty))
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个DataGridView以编程方式填充的.列设置为根据单元格内容自动调整大小.
该DataGridView会提供关于液压和气动原理图部分的信息来填充.我的表单只有a SplitContainer,a PictureBox和the DataGridView.将SplitterDistance被链接到的宽度DataGridView.
在DataGridView将仅具有最多6个列("索引","型号","序列号","图号","页号","修订号") ,并根据原理图要求至少2列的.所以我想相应地调整控件的大小.
如何让DataGridView控件调整为列的总宽度,以便滚动条不显示?
如何在左上角标题单元格中设置文本是数据网格视图?

c# ×9
winforms ×5
datagridview ×2
.net-3.5 ×1
asp.net ×1
dictionary ×1
keypress ×1
linq ×1
wpf ×1