|
Sometimes you do stuff because that is what you want. You dont need to justify it....
This does what you want. It assumes you are clicking on a data grid with two columns in a DataTable, the Directory and Filename.
private void dgImages_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
string sPictureManagerExe ;
string sValue;
int iValue;
string sImageFullPath;
sValue = e.RowIndex.ToString();
iValue = Convert.ToInt16(sValue);
sImageFullPath = _oDt.Rows[iValue]["Directory"].ToString();
if (sImageFullPath.EndsWith("\\") == false)
{
sImageFullPath += "\\";
}
sImageFullPath += _oDt.Rows[iValue]["FileName"].ToString();
sPictureManagerExe = findPictureManager();
sImageFullPath = "\"" + sImageFullPath + "\"";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = sPictureManagerExe ;
proc.StartInfo.Arguments = sImageFullPath;
proc.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private string findPictureManager()
{
const string keyName = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\ois.exe";
string sValue = (string)Registry.GetValue(keyName,"","NotFound");
return sValue;
}
|
|
|
|
|
I have DataGridView namely datagridview1 with having three columns. Now i want to add rows on DataGridView that is specific to datagridview1.
I don't want to make Generic row and add like
DataGridViewRow row = new DataGridViewRow();
I want to make row that is Specific to my datagridview1.
Thanks in Advance.......
|
|
|
|
|
Piyush Vaishnav wrote: Now i want to add rows on DataGridView that is specific to datagridview1
What is so specific ?
simply add a row :
DataGridView a = new DataGridView();
a.Rows.Add(...); OR a.Rows.AddRange(...); OR a.Rows.AddCopy(...);
Have Fun
Never forget it
|
|
|
|
|
could anybody tell me,
How to load C# dll into the C# program runtime without adding reference to the project.
that means if dll is not present then also project should work.
Thank you.
Truth Is The Simplest !!!!
|
|
|
|
|
Neo Andreson wrote: How to load C# dll into the C# program runtime
Check Assembly.LoadFrom()[^].
Neo Andreson wrote: if dll is not present then also project should work
I am not getting what you meant.
|
|
|
|
|
maybe the DLL encapsulates some features and if not there the application must still work, but the features in the DLL disabled?
Harvey Saayman - South Africa
Junior Developer
.Net, C#, SQL
you.suck = (you.passion != Programming)
|
|
|
|
|
Hi all, it's me again.
I have a xml file. I want to convert there content to a MSWord 2007 file getting some data through a xsl file(style sheet). How can it done in C#.
Any example really helpful.
Thanks
I appreciate your help all the time...
CodingLover
|
|
|
|
|
Do you have the XSL file? If so, use System.Xml.Xsl.XslCompiledTransform. But it will give you HTML, not DOC.
|
|
|
|
|
I don't have xsl file actually.
So I search the web and found a file that xml convert to MS Word 97-2003
It's work fine, but not for word 2007.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
|
|
Hello,
I want to find the location of HTMLControls (button, radiobutton, etc)On web page. I have used webbrowser control in my application. when the web page is displayed on the controls, i just need the exact location of particular htmlControl. how can i find it.
Thanks in advance.
The source code of my application program is :
if (webBrowser1.Document != null)
{
HtmlElementCollection elemColl = null;
HtmlDocument doc = webBrowser1.Document;
elemColl = doc.All;
foreach (HtmlElement e1 in elemColl)
{
if (e1.GetAttribute("Name") != "")
{
string location = e1.OffsetRectangle.Location.ToString();
}
}
but above code gives me the relative position. i want exact location of htmlControls on web page.
|
|
|
|
|
I am reading data from XML like Column Name and Visiblity of column i.e. CheckBox.
And want to Write in DataGridView. DGV having Column name and Visiblity as column.
|
|
|
|
|
If I am understanding your question correctly, then:
You can get the xml data into the datset using DataSet.ReadXML method and set it as the source for the grid.
|
|
|
|
|
Hi all,
I've use a foreach loop to remove some elements from a list. Actually I want to remove selected elements. Here is my attempt.
foreach (int i in View1.SelectedIndices)
{
View1.Items.RemoveAt(i);
}
View1 is my list and it correctly get all selected elements correctly. But when remove elements are removing in odd order. I mean, say I selected 5 elements. My code remove 1st 3rd and 5th elements. Not the 2nd and 4th. Any solution. Is that my foreach loop is incorrect.
Thanks.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
This can't work. Think about it for a minute.
Here are your items:
1
2
3
4
5
Select them all. Now, first iteration, your collection is
2
3
4
5
and now it removes the item at position 2. Because that's the position that was next in the list. So, you get
3
4
5
and so on. Any operation like that, you need to work in descending order, so that the changing order does not break your outcome.
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
Can you please tell me how can I do it in my code.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
I would imagine if you can get a collection of selected items, and then find the index of each item so you delete that, that will solve your issue. I'd make a copy of it first too, because removing items can cause the selections to be lost, I believe.
The other way is to take the collection of selected indices, and sort if in reverse order, I believe there's sort functions built in for that. You could iterate over such a collection easy enough. Or you could even make a copy and pull indices from the tail end instead of using for each which starts at the front
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
Thanks sir,
I'll first going to try with the deletion from reverse order as you said. Basically removing the foreach loop. If I'm fail with try to use a duplicate list and work on. I don't like much to use it, because it can use much memory.
I'll let you know what happened.
Thanks.
I appreciate your help all the time...
CodingLover
|
|
|
|
|
The typical solution can be like
for(int selectedItemIndex = View1.SelectedIndices.Count; selectedItemIndex >= 0; selectedItemIndex--)
{
View1.Items.RemoveAt(View1.SelectedIndices[selectedItemIndex]);
}
|
|
|
|
|
Close
Maybe it should be
int selectedItemIndex = View1.SelectedIndices.Count - 1
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
yeah,
the code will be fixed after IndexOutOfRangeException had been occured.
|
|
|
|
|
A simple while loop will do it.
while (listBox1.SelectedItems.Count != 0)
{
listBox1.Items.Remove(listBox1.SelectedItems[0]);
}
|
|
|
|
|
No, my way is FAR better.... :P
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
Christian Graus wrote: No, my way is FAR better
Might be. But, when I checked your replies, it included more steps
|
|
|
|