我尝试像这样设置 CheckedListBox 的 DataSource:
private void Form1_Load(object sender, EventArgs e)
{
checkedListBox1.DisplayMember = "Name";
checkedListBox1.ValueMember = "Checked";
_bindingList = new BindingList<CustomBindingClass>(
new List<CustomBindingClass>
{
new CustomBindingClass {Checked = CheckState.Checked, Name = "Item1"},
new CustomBindingClass {Checked = CheckState.Checked, Name = "Item2"},
new CustomBindingClass {Checked = CheckState.Unchecked, Name = "Item3"},
});
checkedListBox1.DataSource = _bindingList;
}
Run Code Online (Sandbox Code Playgroud)
它正在工作,但部分有效。我稍后可以做以下事情
_bindingList.RemoveAt(0);
Run Code Online (Sandbox Code Playgroud)
或_bindingList[0].Name = "TestTest";和 CheckedListBox 更新良好,但未检查项目。这不起作用
_bindingList[0].Checked=CheckState.Checked;
Run Code Online (Sandbox Code Playgroud)
Checked我还测试了当我的属性为bool 类型时执行此操作CustomBindingClass,但也不起作用。有什么建议应该是什么类型的ValueMember财产吗?
我有一个字符串,让我们称之为"S",它可以是最多8位数的日志,我想将它对齐在一个字符串中,然后在一个文本文件中对齐8个空格(chr(32))
防爆.(我在示例中添加了下划线来标记空白.
S="1234" should result in "____1234"
S="444444" should result in "__444444"
S="abc" should result in "_____abc"
Run Code Online (Sandbox Code Playgroud)
为此,我将编写以下代码
Public Function feld(ByVal S As String, Optional I As Integer = 8) As String
Dim lenS As Integer = Strings.Len(S)
Dim vorS As Integer = I - lenS
Dim rez As String = ""
For x = 1 To vorS
rez += Strings.Chr(32)
Next
rez += S
Return rez
End Function
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式来做到这一点?
我有一个迷你绘画程序。我想创建一个保存按钮,将面板详细信息(形状和正在绘制的所有内容)保存为二进制文件。我这样做了:
SaveFileDialog sfd = new SaveFileDialog();
BinaryFormatter bf = new BinaryFormatter();
var stream = new BinaryReader(File.Open(sfd.FileName,FileMode.Create));
bf.Serialize(stream,object);
Run Code Online (Sandbox Code Playgroud)
但它有一个错误,在bf.Serialize. 我该怎么做?
我有这个功能,创建一个表,然后接收一个CSV文件.我需要一个ID列,它会自动递增,以供以后使用.因此,我使用ID字段运行以下查询.在它无法工作之前,因为最初CSV文件没有ID列,所以当它被发送到数据库的时候会出现错误.所以我的下一个想法是在CSV文件中添加一个没有值的空白ID列,然后再次尝试查询.还有问题.我的c#代码中的错误是:"从colcp 1的bcp客户端收到无效的列长度." 我猜的是ID列.有没有办法插入此ID列并同时自动增加?
private void button2_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
string query = "CREATE TABLE [dbo].[" + textBox1.Text + "](" +"ID int IDENTITY (1,1) PRIMARY KEY," + "[Code] [varchar] (13) NOT NULL," +
"[Description] [varchar] (50) NOT NULL," + "[NDC] [varchar] (50) NULL," +
"[Supplier Code] [varchar] (38) NULL," + "[UOM] [varchar] (8) NULL," + "[Size] [varchar] (8) NULL,)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Connection.Open(); …Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能通过MouseHover事件以某种方式将ToolTip的弹出窗口定位在应用程序窗体之外的空桌面上的固定点上,当然该事件是否对ToolTip有用(不确定)。或任何其他可能的方式
我不是在问如何显示另一种形式作为实现此目标的一种选择。
我想保存一个新的文件名,但现在我只能保存重写文件。每次我尝试保存新文件名时,都会出现一个带有警告对话框的消息框:
(文件路径)不存在。验证是否给出了正确的文件名。”
以下是我的代码,有人可以指出缺少什么吗?谢谢你。
private void button5_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Title = "Save File";
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.CheckPathExists = true;
saveFileDialog1.Filter = "Text files (*.txt)|*.txt| CONF(*.conf)|*.conf|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
// Saves the Image via a FileStream created by the OpenFile method.
System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile();
// Saves the Image in the appropriate ImageFormat based upon the
// File type selected in the dialog box.
// NOTE that …Run Code Online (Sandbox Code Playgroud) 我正在为在 Visual Studio .NET 中构建的现有 WinForms 应用程序实现上下文相关帮助。我HelpProvider在表单中添加了 a并将HelpNamespace属性设置为一个美妙的.chm,涵盖表单上的每个控件和菜单项。我已经设置了HelpKeyword所有衍生自的必要控件,Control到目前为止一切都很好:F1 完美运行。
我的问题是我不知道如何为菜单项做到这一点。它们使用ToolStripMenuItem类,该类不派生自Control,因此没有HelpKeyword属性。我应该如何为单个菜单项提供上下文相关的帮助?谷歌先生一直不太热情。
如何重新排列 a 的项目ContextMenuStrip?例如,如果我创建一个带有按钮的 Windows 窗体应用程序,并将 a 添加ContextMenuStrip到窗体中,并将其分配给按钮单击事件,并按顺序添加项目
run process1
run process2
run process3
Run Code Online (Sandbox Code Playgroud)
然后有一天我决定在ContextMenuStrip“运行 process4”中添加另一个项目,我希望序列类似于
run process1
run process4
run process2
run process3
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点(除了重命名每个项目并交换每个点击事件上的代码)?
我可以这样设置光标:
Me.Cursor = Cursors.Cross
Run Code Online (Sandbox Code Playgroud)
使用IntelliSense,我找不到此“复制”光标:
有什么办法可以通过托管的方式获得它吗?我不想加载位图左右。我想把它留给Windows,因为用户可能已经更改了光标大小或设置了不同的颜色模式。
我已经多次将报表设计器和报表查看器安装到 studio 2022 中。报表设计器的安装工作正常。我可以创建向导并自己动手 .rdlc 报告。
我对此完全陌生。所有有关使用报表工具的在线教程都是从“将报表查看器拖到表单中并开始配置它”开始的。
将报表查看器安装到工具箱是从 nuget 包开始,然后从浏览项目文件夹中找到 dll。不幸的是,当我从工具箱将报表查看器添加到表单时,报表查看器落在表单下方,并且不允许我像所有教程中那样配置它。
我尝试过报表查看器 2010、版本 11、版本 12 和版本 15 软件包,其中一个软件包表示它修复了软件包未安装所有所需 dll 的问题。
根据教程应该有一个智能标签。这种情况不会发生,而且我看不到可以链接到报告的任何属性。我尝试将reportviewer 链接到rdlc,方法是将其放入localreport ReportEmbeddedResource 属性中,但运行代码时没有显示任何内容。
是我设置不正确,还是该工具无法正常工作?
.net ×9
winforms ×9
c# ×8
ado.net ×1
data-binding ×1
gdi+ ×1
rdlc ×1
reportviewer ×1
sql-server ×1
tooltip ×1
vb.net ×1