我在绑定的ComboBox(在Windows窗体上)上设置SelectedIndex时遇到问题,我在运行时添加到表单中,我怀疑有些奇怪的事情发生了.
当我尝试这个时,我得到错误"InvalidArgument ='1'的值对'SelectedIndex'无效."
private void Form1_Load(object sender, EventArgs e)
{
List<string> comboBoxList = new List<string>();
comboBoxList.Add("Apples");
comboBoxList.Add("Oranges");
comboBoxList.Add("Pears");
ComboBox comboBox1 = new ComboBox();
comboBox1.DataSource = comboBoxList;
comboBox1.SelectedIndex = 1;
this.Controls.Add(comboBox1);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我直接将项添加到ComboBox,则没有问题,如下所示:
comboBox1.Add("Apples");
Run Code Online (Sandbox Code Playgroud)
此外,如果我在设置SelectedIndex之前将控件添加到表单中也没有问题,如下所示:
ComboBox comboBox1 = new ComboBox();
this.Controls.Add(comboBox1);
comboBox1.DataSource = comboBoxList;
comboBox1.SelectedIndex = 1;
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我不能从数据源设置选定的索引,直到控件添加到窗体后?
我正在寻找最好的asp.net日历/日程安排组件.我喜欢谷歌日历的外观,它绝对需要是一个原生的.net组件,可以自定义.
我不介意它是否是更大框架的一部分(例如telerik).样本的链接会很棒.
我可能会向后看这个...我有一个类似于文档的类和另一个类似模板的类.它们都从相同的基类继承而且我有一个方法来从模板(或从另一个文档,它在基类中的方法)创建一个新文档.所以,如果我想从模板创建一个新文档,我只是实例化模板并在其上调用GetNewDoc();
Document doc = mytemplate.GetNewDoc();
Run Code Online (Sandbox Code Playgroud)
在Document类中,我有一个空白构造函数创建一个新的空白文档以及另一个带有文档ID的构造函数,以便我可以从数据库加载文档.但是,我还想要一个带有模板ID的构造函数.这样我就能做到
Document doc = New Document(TemplateID)
Run Code Online (Sandbox Code Playgroud)
因为模板类已经具有返回文档的能力,所以我希望构造函数能够做类似的事情
Template temp = new Template(TemplateID);
this = temp.GetNewDoc();
Run Code Online (Sandbox Code Playgroud)
当然,我不能这样做,因为"这个"是只读的 - 无论如何它感觉很奇怪.我有一种感觉,我在这里非常愚蠢,所以随意喊:)
问题是所讨论的对象非常复杂,有多个子对象集合和多个表上的数据库持久性,因此我不想复制太多代码.虽然,我想我可以从模板中获取新文档然后复制字段/属性,因为集合应该足够容易 - 这看起来像重复.
一个更精细的代码示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Test
{
class Program
{
static void Main(string[] args)
{
// This just creates the object and assigns a value
Instance inst = new Instance();
inst.name = "Manually created";
Console.WriteLine("Direct: {0}", inst.name);
//This creates a new instance directly from a template
MyTemplate def = new MyTemplate(); …Run Code Online (Sandbox Code Playgroud) 你有没有经历过一段代码来做一个看似简单的改变然后意识到你刚刚进入一个值得认真关注的荒地?这通常会在官方的FREAK OUT时刻跟进,在那里,重写一切在视线中的压倒性感觉开始蔓延.
重要的是要注意,这个糟糕的代码不一定来自其他代码,因为它可能确实是我们过去编写或贡献的东西.
很明显,有一些严重的代码腐烂,可怕的架构等需要处理.与此问题相关的真正问题是,现在不是重写代码的合适时机.可能有很多原因:
那么我们应该如何平衡不断改进代码的责任,同时又是一个负责任的开发人员呢?我们如何避免对破窗理论做出贡献,同时也意识到行动以及可能造成的潜在鲁莽行为?
很棒的答案!在大多数情况下,似乎有两种思想流派:
知道是否有更多人认为存在任何平衡将会很有趣.
为什么拆分列表在此程序中始终为空?(它来自链接列表上维基百科页面上的代码.)
/*
Example program from wikipedia linked list article
Modified to find nth node and to split the list
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct ns
{
int data;
struct ns *next; /* pointer to next element in list */
} node;
node *list_add(node **p, int i)
{
node *n = (node *)malloc(sizeof(node));
if (n == NULL)
return NULL;
n->next = *p; //* the previous element (*p) now becomes the "next" element */
*p = n; //* …Run Code Online (Sandbox Code Playgroud) 我需要将单个数字(1到9)转换为(01到09).我可以想到一种方法,但它的大而丑陋和繁琐.我敢肯定必须有一些简洁的方法.有什么建议
我编写了一个ASP.NET复合控件,其中包含一些与Web服务通信的Javascript.
我已经将控件和服务的类打包成了一个DLL,使人们可以在其他项目中使用它.
我遇到的问题是,除了在项目中引用DLL之外,我的控件的使用者还必须包含用于Web服务的.ASMX文件.虽然它不是一个复杂的文件(只是一个单行程序,指的是DLL中的类),但如果可以,我想避免使用它.
有没有办法避免必须有.ASMX文件?
感谢所有建议!
更新:在John Sheehan的回复(下面)中链接的文章确实有效 - 但如果你想使用AJAX调用Web服务则不行.有人知道AJAX友好版吗?
这是一个多站点问题.我有很多网站都有.htaccess文件,多行类似于:
rewriterule ^(page-one|page-two|page-three)/?$ /index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)
这意味着www.domain.com/page-one和www.domain.com/page-one/都将加载www.domain.com/index.php?page=page-one
但是我总是被告知,确保每页只使用一个URL这是一个很好的搜索引擎优化实践所以我想做的是www.domain.com/page-one重定向到www.domain.com/page -one /通过.htaccess文件.
请注意我不想要的答案是从行尾删除?$,这只会导致www.domain.com/page-one成为404链接.
在 Visual Studio 的“附加到进程”对话框中,我可以看到每个可用进程的标题列。有什么方法可以让我为特定的 w3wp.exe 进程设置标题以反映它托管的应用程序池吗?
PS - 我知道 iisapp.vbs 以及它使我能够识别哪个 w3wp.exe 属于哪个应用程序池的方式。我的目标是在这里提供一个更用户友好的解决方案:)
PPS - 当前运行 IIS6。
这个程序pdftotext可以将pdf文件转换为文本文件.要在linux控制台上直接使用它:
pdftotext file.pdf
Run Code Online (Sandbox Code Playgroud)
这将在与pdf文件相同的目录中生成file.txt.我正在寻找一种方法来从php程序中完成它,并在一些谷歌搜索后,我结束了两个应该适合我的命令:system()和exec().所以我用这个做了一个php文件:
<?php
system('pdftotext file.pdf');
?>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,它不起作用.没有创建txt文件.所以我尝试用另一个命令创建一个测试文件:
<?php
system('touch test.txt');
?>
Run Code Online (Sandbox Code Playgroud)
这很好.我也使用了exec(),结果是一样的.为什么不起作用?
编辑:按照RoBorg的建议,我在命令中添加了2>&1参数,所以:
<?php
system('pdftotext file.pdf 2>&1');
?>
Run Code Online (Sandbox Code Playgroud)
它打印了一条错误消息:
pdftotext:加载共享库时出错:libfontconfig.so.1:无法打开共享对象文件:没有这样的文件或目录
似乎服务器上缺少某些东西.
asp.net ×2
c# ×2
php ×2
.htaccess ×1
c ×1
calendar ×1
combobox ×1
constructor ×1
debugging ×1
iis-6 ×1
linked-list ×1
pdf ×1
text-files ×1
vb.net ×1
w3wp ×1
web-services ×1
winforms ×1
zero-pad ×1